2010-09-21 77 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会抛出您看到的错误。