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

时间:2010-09-21 18:57:22

标签: java perl system

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

2 个答案:

答案 0 :(得分:6)

您需要将其称为java -jar filename.jar

如果省略-jar,则java认为您正在尝试运行名为filename.jar的类,它尝试从filename/jar文件加载。由于您没有该文件,因此java会抛出您看到的错误。

答案 1 :(得分:4)

您必须使用-jar选项来启动jar。

  

java [options] -jar file.jar [argument ...]


资源: