2010-09-21 33 views
3

標題幾乎說明了一切,我試圖讓一個java程序(.jar文件)從Perl程序運行。我讀了Stackoverflow上的另一篇文章,說這個語法是正確的:使用System調用Java的.jar程序()

system("java filename.jar"); 

但是,這給了我以下錯誤。我不知道,如果問題是,它顯示文件名稱爲「文件名/罐」,而不是「filename.jar」

Exception in thread "main" java.lang.NoClassDefFoundError: filename/jar 
Caused by: java.lang.ClassNotFoundException: filename.jar 
     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:307) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 

回答

4

您必須使用-jar選項來啓動一個罐子。

的java [選項] -jar file.jar [參數...]


資源:

6

您需要將其稱爲java -jar filename.jar

如果省略-jar,則java認爲您正在嘗試運行名爲filename.jar的類,它嘗試從filename/jar文件加載。由於您沒有該文件,因此Java會拋出您看到的錯誤。

相關問題