自寻找以来已经有一段时间了,但找不到解决方案。我试图在.jar文件中的Linux上执行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。第二个参数是引号内的内容。即java -jar M1_MIAGE_PDL_VIZ_GROUPE3.jar menu
-c
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外壳不提供控制台/终端功能。为此,您需要使用“终端”应用程序。
例如,如果您使用的是GNOME
Process p = new ProcessBuilder( "gnome-terminal", "-e", "java -jar M1_MIAGE_PDL_VIZ_GROUPE3.jar menu").start();
将(可能)做您想做的事情。