Откройте Jar без использования java -jar с аргументами - PullRequest
0 голосов
/ 03 декабря 2018

Я использую jar для запуска некоторого кода в качестве помощника для программы (OSX).Я хочу открыть эту флягу программно, и использую ProcessBuilder, чтобы запустить его через терминал.

Однако я хочу привести банку некоторые аргументы (в частности, местоположение файла, но это не имеет значения).Я использую java -jar jarName arg, но это не работает с людьми, у которых не установлены инструменты Java.

Я пытался использовать open jarName --args arg, но банка не распознает арги.В качестве теста я сейчас просто использую следующий код:

public static void main(String[] args) {
   try {
      // set a PrintStream to see the args presented
      System.setOut(
        new PrintStream(new FileOutputStream(new File(System.getProperty("user.home") + "/Desktop/argsTest.txt"))));
   } catch (FileNotFoundException e) {
      e.printStackTrace();
   }
   System.out.println(argsSize: "+args.length");

   for (String s : args)
      System.out.println(s);
}

Я в порядке, пробуя другие способы открытия банок, если они доступны во всех современных системах.

У меня есть JRE, упакованное в приложение, есть ли способ использовать это?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Bundle JRE с вашей программой.Обратитесь к Bundle JRE вместе с исполняемым файлом jar

или, если вы используете netbeans - это позволит вам сначала протестировать его.https://netbeans.org/kb/docs/java/native_pkg.html

как запустить - https://netbeans.org/kb/docs/java/native_pkg.html#check

0 голосов
/ 03 декабря 2018

Добро пожаловать на StackOverFlow!

К сожалению, ответ: нет, вы не можете сделать это .Если вы хотите запустить некоторый код Java, из jar или нет, вам понадобится , чтобы на компьютере была установлена ​​Java.В частности, вам нужна JRE, чтобы иметь JVM.

Но вы можете предоставить java самостоятельно при развертывании своего приложения.Смотрите эти темы:

для получения дополнительной информации.

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