【发布时间】:2019-03-17 21:05:53
【问题描述】:
我正在尝试创建一个在 Mac 的终端控制台中重新打开的可执行 .jar。 (为了有一个用户界面来输入命令到程序中)
// if program is not open in Terminal:
Runtime.getRuntime().exec("java -jar \"" + path + "\" isInConsole");
System.exit(0);
此代码成功但无缝地执行了命令,因此我没有获得控制台 UI。如何让它打开一个可见的终端窗口并在其中执行命令?
编辑:我设法打开了终端,但仍然需要弄清楚如何在其中运行java -jar ... 命令。
这行得通:
String arg = "cd /Users/potato/Desktop";
Runtime.getRuntime().exec("open -a Terminal --args " + arg);
但这不起作用:
String arg = "java -jar /Users/potato/Desktop/test.jar isInConsole";
Runtime.getRuntime().exec("open -a Terminal --args " + arg);
【问题讨论】:
-
Well Terminal 是一个应用程序,位于 /Applications/Utilities/ 下
-
如果您的最终目标是执行 bash 命令或脚本,那么您可能应该忘记运行终端,而是查看
ProcessBuilder类来执行您的命令。 -
@JoakimDanielson 我的最终目标是在终端窗口中重新打开我的可执行 jar,以便使用控制台与我的程序进行交互。
-
您可能需要使用 AppleScript 来启动 Terminal.app,然后在其中运行您的程序。例如,请参见:stackoverflow.com/questions/33033606。您最好不尝试从可执行的 jar 中完成所有这些操作。对于一个简单的用例,只需将 jar 放在某个已知位置,然后编写一个 shell 脚本来启动它,然后将该 shell 脚本放在您的桌面上。