2

我有一个 Java GUI 程序,我想在用户单击指定按钮时从该程序在新终端(没有 GUI)中运行另一个 jar 文件。有人可以建议我该怎么做吗?

4

1 回答 1

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 可执行文件...

替代方案可能只是使用单独的 ClassLoader 并重定向 System.out 和 System.in 运行给定的 jar。这需要为正在运行的 jar 编写某种 GUI。如果只需要进程的输出并且不需要终端仿真,这并不难。只需将 System.out 重定向到某个 textarea。如果对运行的输入/输出有更多要求,那么可以使用用 java 编写的终端仿真器来为您做这些事情。

于 2013-06-16T18:46:52.303 回答