Вызов Java .jar-программы из Perl с использованием System () - PullRequest
3 голосов
/ 21 сентября 2010

Название в значительной степени говорит само за себя, я пытаюсь запустить 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)

Ответы [ 2 ]

6 голосов
/ 21 сентября 2010

Вам нужно назвать его как java -jar filename.jar.

Если вы пропустите -jar, то Java думает, что вы пытаетесь запустить класс с именем filename.jar, который он пытается загрузить изфайл filename/jar.Поскольку у вас нет этого файла, Java выдает ошибку, которую вы видите.

4 голосов
/ 21 сентября 2010

Вы должны использовать опцию -jar, чтобы запустить jar.

java [параметры] -jar file.jar [аргумент ...]


Ресурсы:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...