标题几乎说明了一切,我正在尝试让 Java 程序(.jar 文件)从 Perl 程序运行。我在 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)
最佳答案
您需要将其命名为 java -jar filename.jar
。
如果您遗漏了 -jar
,那么 java 会认为您正在尝试运行一个名为 filename.jar
的类,它会尝试从 >文件名/jar
文件。由于您没有该文件,java 会抛出您看到的错误。
关于java - 使用 System() 从 Perl 调用 Java .jar 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3763501/