Открытие Java-скрипта в Linux - PullRequest
0 голосов
/ 26 января 2011

Вернемся снова, на этот раз с вопросом Java. Мне сказали, как заставить Processbuilder запускать неродные сценарии (вызывая программу, которая будет запускать сценарий), но я пытался запустить сценарий java и столкнулся с парой проблем. Прежде всего, я должен использовать .class или .jar? оба они могут быть запущены, но я не уверен, какой из них будет работать лучше. И как мне их правильно выполнить? Я попытался вызвать java (/ usr / lib / jvm / java-6-openjdk / jre / bin / java) и затем указать путь к файлу класса, но это не работает.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 26 января 2011

Я согласен с Сарнольдом с точки зрения вопроса .jar. С точки зрения выполнения кода с использованием ProcessBuilder, вы можете выполнить файл .jar, если этот файл содержит метод main() и имеет заголовок манифеста Main-Class, который можно сгенерировать при создании .jar. После того, как вы создали .jar, вы должны использовать такую ​​команду для запуска .jar:

java -jar jar_file_name_here.jar

Если у вас есть несколько основных классов и вы хотите запустить определенный, вы можете использовать команду, подобную этой:

java -jar jar_name.jar com.main.class.package.path.here.SomeClassName

Вы пытаетесь казнить кого-то еще .jar, или вы сами хотите выполнить его внутри скрипта? Почему вы используете сценарий, из любопытства?

0 голосов
/ 26 января 2011

Вам нужно либо -jar и путь к файлу jar с манифестом, в котором указан ваш основной класс, либо -cp с путем к каталогу, в котором ваши классы находятся в стандартной компоновке, либо -cp с путем банки, за которой следует название класса с основным.

java -jar I_AM_A_JAR_WITH_A_MANIFEST.jar

java -cp I_AM_JAR_1.jar:I_AM_JAR2.jar... this.is.my.FooClass

java -cp dir_path1:dir_path2:dir_path3 this.is.my.FooClass

где 'dir_pathN' - это каталог со стандартной иерархией классов.

...