使用System()从Perl调用Java .jar程序

use*_*049 3 java perl system

标题几乎说明了一切,我正在尝试从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)

Can*_*ice 6

你需要把它称为java -jar filename.jar.

如果你遗漏了-jar,那么java认为你正在尝试运行一个名为的类filename.jar,它试图从filename/jar文件加载.由于您没有该文件,因此java会抛出您看到的错误.