Выполнить программу Java из нашей программы Java - PullRequest
9 голосов
/ 02 февраля 2009

Я использовал

Runtime.getRuntime().exec("_____")

но выдает IOException, как показано ниже:

java.io.IOException: CreateProcess: c:/ error=5
  at java.lang.Win32Process.create(Native Method)
  at java.lang.Win32Process.<init>(Win32Process.java:63)
  at java.lang.Runtime.execInternal(Native Method

Я не знаю, есть ли у меня проблема с указанием пути или что-то еще. Может кто-нибудь, пожалуйста, помогите мне с кодом.

Ответы [ 14 ]

0 голосов
/ 25 марта 2013

Сначала вы скомпилируете код prog-A и преобразуете его в файл jar (т. Е. В NetBeans Shift-F11), а путь к нему - netbean (NetBeansProjects / prog-A / dist / prog-A.jar)

 public class ProgA {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    System.out.println("Helllo print thr ProgA");

}
}
}

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

public class ProgB {


public static void main(String[] args) {
    ProgA progA = new  ProgA();
    String arg[] = null;
    progA.main(arg);
}
}
0 голосов
/ 28 февраля 2012

Ответ прост, все, что вам нужно сделать, это ввести код -

$ process p = Runtime.getRuntime().exec("javac factorial.java"); in the try catch block

Код будет выглядеть так -

try
{
process p = Runtime.getRuntime().exec("javac factorial.java");
}
catch(IOException e)
{
e.printStackTrace();
}

Эй, я думаю, это должно сработать. По крайней мере, для меня это сработало

0 голосов
/ 03 февраля 2009

У меня была похожая проблема. Мне нужно было запустить раздел кода Java в отдельной виртуальной машине, поскольку он вызывал собственный код через JNI, который иногда взрывался, уничтожая всю виртуальную машину.

Я немного обманул. Изначально я использовал Runtime для вызова простого командного файла и поместил туда команду Java в процессе работы. Это позволило мне настроить его по мере необходимости и запустить команду в командной строке DOS для удобства тестирования. Когда он закончился, я просто скопировал результат в вызов времени выполнения.

0 голосов
/ 02 февраля 2009

Я не могу вспомнить точный код, который я использовал, чтобы заставить это работать, но вы должны передать "java.exe" (или эквивалентный) в качестве исполняемого файла, а затем класс или jar для запуска в качестве параметра , с правильным рабочим каталогом. Так что это не так просто, как просто вызвать один метод.

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