2010-11-25 48 views
0

我有這樣的bash腳本start.sh:幫助,啓動Java應用程序在Linux上

export JAVA_HOME=/home/qds/bin/jdk1.6.0_22
export QDS_HOME=/home/qds
$JAVA_HOME/bin/java -classpath $QDS_HOME/lib/*:$QDS_HOME/lib/commons/* com.qds.Main [email protected]

在目錄/家庭/量子點/ lib目錄我有必要庫和我的jar文件,包含至極:

COM \量子點\ CONFIG
COM \量子點\實體
COM \量子點\冬眠
COM \量子點\協議
COM \量子點\ UTIL
COM \量子點\ Main.class

但是當我運行./start.sh,我有:螺紋

./start.sh 異常「主「java.lang.NoClassDefFoundError:com/qds/Main(錯誤名稱:Main) at java.lang.ClassLoader.defineClass1(Native Method)

回答

1

您必須指定您的主類將在幾種方式

  1. 指定主類名作爲參數傳遞給java命令(就在主類添加到您的java命令結束)
  2. 將其定義在主罐子的清單
1

Java不支持選項-classpath中的通配符。嘗試從$ QDS_HOME/lib/*和$ QDS_HOME/lib/commons/*中刪除* *

順便說一下,這也與Windows相關。

類路徑應該包含 1.目錄 2.明確書寫的jar文件。

如果您有很多jar文件,您可以創建組成命令行選項的腳本。 例如在Linux上

-classpath `ls -1|tr '\n' :` 

組成的類路徑與結腸癌

+0

分隔,但不應該外殼擴展通配符他。所以儘管classpath不能包含通配符,只要在shell擴展通配符後隱藏`java`命令,它只是一個文件列表 – hhafez 2010-11-25 22:34:30

相關問題