标题几乎说明了一切,我正在尝试从Perl程序运行java程序(.jar文件).我在Stackoverflow上读了另一篇文章说这个语法是正确的:
system("java filename.jar");
Run Code Online (Sandbox Code Playgroud)
但是,这给了我以下错误.我不确定问题是它显示文件名为"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)
Run Code Online (Sandbox Code Playgroud)
你需要把它称为java -jar filename.jar.
如果你遗漏了-jar,那么java认为你正在尝试运行一个名为的类filename.jar,它试图从filename/jar文件加载.由于您没有该文件,因此java会抛出您看到的错误.