使用终端启动java应用程序

使用终端启动java应用程序,java,terminal,Java,Terminal,我正在尝试创建一个java应用程序,它不使用java-jar启动一个新的终端。我尝试了几种方法,但都不管用 我需要这个在osx上工作,我能够在windwos上实现它您必须将shell作为程序调用 Runtime runtime = Runtime.getRuntime(); String[] args = { "/bin/sh", "-c", " java -jar myjar.jar" }; final Process process = runtime.exec(args); 为了回

我正在尝试创建一个java应用程序,它不使用java-jar启动一个新的终端。我尝试了几种方法,但都不管用


我需要这个在osx上工作,我能够在windwos上实现它

您必须将shell作为程序调用

 Runtime runtime = Runtime.getRuntime();
 String[] args = { "/bin/sh", "-c", " java -jar myjar.jar" };
 final Process process = runtime.exec(args);
为了回应你的具体要求,这是我的回答

1/创建shell脚本

例如,将其称为loadJava.sh:

#!/bin/sh
java -jar path/to/jar/file.jar
2/使用打开终端并运行shell脚本的java代码调用shell脚本

OSX的正确代码是

Runtime.getRuntime().exec("/usr/bin/open -a Terminal /path/to/the/script");

你尝试了什么?你在Windows上做了什么?顺便说一句,在Windows上,java-jar可能正在做一些事情。我尝试了Runtime.getRuntime().exec(“open-a Terminal java-jar myjar.jar gui”),在开始时,我正在检查gui是否在开始参数中。在Windows上,我使用了上面解释的方法,但没有使用“open-a Terminal”,而是使用了“start-c”为什么
不使用java-jar
?/bin/sh/不是OSX上的目录请删除end SlashB,但它不会创建一个新的终端窗口,在该窗口中我可以看到输出,但这仍然不会在新窗口中启动我的应用程序。如果双击应用程序,它将在终端中启动