2013-07-12 22 views
0

我無法解決這個問題,我試圖通過bash腳本執行java程序。無法執行Java程序的Linux腳本

爲什麼我得到這個錯誤?

Exception in thread "main" java.lang.NoClassDefFoundError: com/QuoteTester 
Caused by: java.lang.ClassNotFoundException: com.QuoteTester 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: com.QuoteTester. Program will exit. 

這是我的腳本內容quotetest.sh

java -cp ./com/ug_ugbapi-all.jar com.QuoteTester $1 

我執行腳本,這樣

./quotetest.sh GOOG 

從目錄從我在哪裏執行這個腳本quotetest.sh,在我得到了一個名稱com目錄下我得到了ug_ugbapi-all.jar and QuoteTester.class classes

想盡選項(把所有的文件在同一文件夾中的COM,但是毫無效果)

有誰請告訴我如何解決這個問題?

+1

關閉此線程之前,我可以知道答案pleaseeee? – Kiran

+0

有兩個問題:1)如果你從shell運行java,它是否工作? 2)你的腳本的第一行是什麼? #!/ bin/sh?你確定你沒有產生一個缺少一些基本環境變量的shell嗎? –

+0

這是需要的#!/ bin/sh ?? – Kiran

回答

2

用你給定的類路徑,Java是只有去看jar文件。對於它找到罐子外的類文件,你必須修改-cp論點:

java -cp ./com/ug_ugbapi-all.jar:. com.QuoteTester $1 
+0

嘿,謝謝你的工作,我會將它標記爲正確的。 – Kiran

0

您收到此錯誤,因爲com/QuoteTester類不能被找到,這意味着com/QuoteTester類不上類路徑。