Выполнить .jar файл из Java-программы
Как я могу запустить локальный файл jar из java-программы?
Файл jar не находится в пути класса программы-вызывающего Java.
Ответы
Ответ 1
Я предлагаю вам использовать ProcessBuilder
и запустить новую JVM.
Вот что вам нужно начать:
ProcessBuilder pb = new ProcessBuilder("/path/to/java", "-jar", "your.jar");
pb.directory(new File("preferred/working/directory"));
Process p = pb.start();
Ответ 2
Process proc = Runtime.getRuntime().exec("java -jar Validate.jar");
proc.waitFor();
// Then retreive the process output
InputStream in = proc.getInputStream();
InputStream err = proc.getErrorStream();
byte b[]=new byte[in.available()];
in.read(b,0,b.length);
System.out.println(new String(b));
byte c[]=new byte[err.available()];
err.read(c,0,c.length);
System.out.println(new String(c));
Ответ 3
Во-первых, описание вашей проблемы немного неясно. Я не понимаю, хотите ли вы загружать классы из файла jar для использования в вашем приложении, или в банке содержится основной файл, который вы хотите запустить. Я предполагаю, что это второй.
Если это так, у вас здесь много вариантов.
Простейшим может быть следующее:
String filePath; //where your jar is located.
Runtime.exec(" java -jar " + filepath);
Вуаля...
Если вам не нужно запускать файл jar, но загрузите классы из него, дайте мне знать.
Ответ 4
Другой способ сделать на окнах:
Runtime.getRuntime().exec("cmd /c start jarFile");
таким образом вы можете также установить приоритет своего процесса (нормальный/низкий/и т.д.)
Ответ 5
Может ли быть полезно следующее:
http://download.oracle.com/javase/tutorial/deployment/jar/jarclassloader.html
Ответ 6
Вы можете запустить файл jar из того места, где хотите, используя только этот код.
Desktop.getDesktop().open(new File("D:/FormsDesktop.jar"));
где
new File("your path to jar")
Надеюсь, что это поможет.
Спасибо.
Ответ 7
- добавить библиотеку jar в свой проект
- импортировать основной класс (см. манифест в файле jar)
-
вызывать основной статический метод с аргументами
String args [] = { "-emaple", "value" };
PortMapperStarter.main(арг);
Ответ 8
1) Задайте путь класса из переменных среды
2) Перейдите в папку, в которой существует ваш файл jar
3) Выполните следующие команды с помощью командной строки
java -jar jarfilename