标题几乎说明了一切,我正在尝试从Perl程序运行java程序(.jar文件)。我在Stackoverflow上读到了另一篇文章,说这种语法是正确的:
system("java filename.jar");
然而,这给了我以下错误。我不确定问题是它显示文件名为“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)
答案 0 :(得分:6)
您需要将其称为java -jar filename.jar
。
如果省略-jar
,则java认为您正在尝试运行名为filename.jar
的类,它尝试从filename/jar
文件加载。由于您没有该文件,因此java会抛出您看到的错误。
答案 1 :(得分:4)