[英]Run executable from JFrame (linux) (eclipse)
我试图在我的JFrame GUI中运行名为src2srcml的基于Linux的可执行文件,该可执行文件将源文件(C,C ++,Java)转换为XML文件,以便以后使用。 我的GUI成功使用JFileChooser定位并选择了源文件。
我目前正在尝试使用Runtime.getRuntime()。exec()函数运行可执行文件,但到目前为止没有任何反应。 我可以使用“ bash-4.1 $ ./src2srcml --position sum_avg.c -o hooray.c.xml”命令从命令行运行它,该文件将源文件sum_avg.c转换为XML文件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嵌入到我的可执行文件中,并且不需要单独进行。 这可能吗?
预先感谢您的任何想法!
我对Unix不熟悉,但是,您是否不需要通过Unix shell调用它,也许通过在命令数组中调用bash或其他shell命令呢? 例如这里的答案
其他问题
关于
当一切正常时,我想将整个程序编译为一个可执行文件,以便将src2srcml嵌入到我的可执行文件中,并且不需要单独进行。
不,除非您将文件包含在jar中以及将其解压缩的代码,否则可能无法实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.