Я пытаюсь запустить исполняемый файл linux под названием src2srcml в моем графическом интерфейсе JFrame, который берет исходный файл (C, C++, Java) и преобразует его в XML-файл, который будет использоваться позже. Мой графический интерфейс успешно использует JFileChooser для поиска и выбора исходного файла.Запустить исполняемый файл из JFrame (linux) (eclipse)
В настоящее время я пытаюсь использовать функцию Runtime.getRuntime(). Exec() для запуска исполняемого файла, но до сих пор ничего не происходит. Я могу запустить его из командной строки, используя команды «bash-4.1 $ ./src2srcml --position sum_avg.c -o hooray.c.xml», который берет исходный файл sum_avg.c, преобразует его в XML в новом file hooray.c.xml, но когда я пытаюсь выполнить одни и те же команды в Runtime.getRuntime(). exec() ничего не происходит. Я не особенно знаком с классами Runtime.getRuntime(). Exec() или ProcessBuilder. Нужно ли мне перейти к тому, где первый исполняемый файл? Я также попытался включить путь в первом параметре, вызов исполняемого файла сам, но это тоже не сработало.
//--- 'Run Source Code' Button---//
JButton btnRunSourceCode = new JButton("Run Source Code");
btnRunSourceCode.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if(filePath == null){
textArea.setText("Please Load a source file (C, C++, Java)");
}
try{
textArea.setText("Converting Source Code to XML");
String[] commands = {"./src2srcml", "--position ", selectedFile.getName(), " -o targetFile.xml"};
Process src2XML = Runtime.getRuntime().exec(commands);
src2XML.waitFor();
}
catch(Exception exc){/*src2srcml Fail*/}
}
});
btnRunSourceCode.setBounds(612, 39, 156, 25);
contentPane.add(btnRunSourceCode);
В настоящее время исполняемый файл находится в рабочей области моего проекта (Eclipse). когда я получаю все, что угодно, я хотел бы скомпилировать всю программу в один исполняемый файл, чтобы src2srcml был встроен в мой исполняемый файл и не требуется отдельно. Это возможно?
Заранее благодарим за любые идеи!