我有一个Java GUI程序,每当用户点击指定的按钮时,我想在这个程序的新终端(没有GUI)中运行另一个jar文件。有人可以建议我该怎么做?
答案 0 :(得分:0)
启动新终端需要使用ProcessBuilder或System.exec生成新进程。这取决于操作系统及其配置。在linux xterm中运行独立的jar文件就像这样启动:
File dir = new File("/directory/to/the/jar/file");
String jarName ="standalone.jar";
ProcessBuilder processBuilder = new ProcessBuilder("/usr/bin/xterm","-e","java -jar "+jarName);
processBuilder.directory(dir);
processBuilder.start();
如果没有独立的jar,那么必须使用-cp -parameter将类路径编写为java excutable ......
替代方案可能是使用分离的ClassLoader运行给定的jar并重定向System.out和System.in。这需要为正在运行的jar编写某种GUI。如果只需要进程的输出并且不需要终端仿真,则这并不难。只需将System.out重定向到某个textarea。如果对运行的输入/输出有更多要求,那么可以使用用java编写的终端仿真器为你做这些事情。