2012-05-26 200 views
0

我現在有命令提示符的打開實例,它讀取批處理文件調用Java問題

java -cp .;jars/GUI.jar;jars/utils.jar;...(a bunch more jars in the same folder)... Test 

其中test是我的Java程序(class文件已經編譯)。

當我按回車時,程序運行得很好。現在,我將相同的確切行放入批處理文件中進行自動運行,但它給了我一個錯誤。

批處理文件:

cd 
java -cp .;jars/GUI.jar;jars/utils.jar;...(a bunch more jars in the same folder)... Test 
pause 

錯誤:異常線程 「main」 java.lang.NoClassDefFound測試(錯誤的名稱:測試)

我已經在這幾個小時,所以今天在這點,這是我需要做的最後一件事,我的大腦被炸,我錯過了一些簡單的東西?

+0

是否打印出您所期望的目錄?該批處理文件與Test在同一個目錄中嗎? – pimaster

回答

0

或者Bash腳本不知道在哪裏安裝了Java的PATH。我也會檢查環境變量。

+0

echo%cd%顯示它位於當前工作目錄中(其中存在java文件) 我將java添加到批處理文件中的路徑變量中,但這不應該是問題,因爲命令java本身觸發java.exe就好了。我想這可能是一個java文件本身的問題,看着它,謝謝你的輸入 – user1418454

+0

我給了完整的路徑名引號,沒有去。在這一點上,我只是非常困惑,我可以在命令提示符的實例中運行程序,但是當我嘗試在批處理文件中複製(使用正確的目錄)時,這是不行的。作爲一個側面的問題,是否有特殊情況下編譯器無法找到/加載主類(不包括缺少的主類作爲原因)? – user1418454

+0

當jar從未擁有主類文件或者路徑通向其他某個地方時,可能會出現問題。嘗試用一些javac和java命令調用實際的java文件。讓我們刪除下一個調試的jar文件的圖層。 –

0

也許你應該嘗試提供Test類的完整路徑:/ x/y/Test 我並不確定確切的規則,但我猜測計算機無法知道你想啓動哪個類如果Test .class不在當前文件夾中(當前腳本文件夾?當前cd/home文件夾?)