自从我寻找以来已经有一段时间了,但我没有找到解决方案。我正在尝试在 Linux 上的 .jar 文件中执行 bash 命令。
为此,我尝试了很多方法,包括:
Process p = new ProcessBuilder("java", "-jar", "M1_MIAGE_PDL_VIZ_GROUPE3.jar", "menu").start();
Runtime.getRuntime().exec("/bin/sh -c java -jar M1_MIAGE_PDL_VIZ_GROUPE3.jar menu");
Runtime.getRuntime().exec(new String[]{"/bin/sh -c", "java -jar M1_MIAGE_PDL_VIZ_GROUPE3.jar menu"});
因此,当我单击 .jar 文件时,我希望程序打开 bash,并执行命令(java -jar ...),以执行程序的另一部分。
关于如何去做有什么想法吗?
要理解这一点,您首先需要了解如何在 shell 提示符下运行该命令。
$ sh -c "java -jar M1_MIAGE_PDL_VIZ_GROUPE3.jar menu"
请注意双引号的位置。第一个参数是-c
。第二个参数是引号内的内容; IE。java -jar M1_MIAGE_PDL_VIZ_GROUPE3.jar menu
现在我们将其翻译成 Java:
Process p = new ProcessBuilder(
"/bin/sh",
"-c",
"java -jar M1_MIAGE_PDL_VIZ_GROUPE3.jar menu").start();
话虽如此,以上实际上并没有达到任何目的。当然,它不会打开一个新的控制台窗口来显示控制台输出等。与 Windows“CMD.exe”不同,UNIX/Linux shell 不提供控制台/终端功能。为此,您需要使用“终端”应用程序。
例如,如果您使用的是 GNOME
Process p = new ProcessBuilder(
"gnome-terminal",
"-e",
"java -jar M1_MIAGE_PDL_VIZ_GROUPE3.jar menu").start();
会(可能)做你想做的事。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)