小编典典

在Java程序中执行bash命令

java

自寻找以来已经有一段时间了,但找不到解决方案。我试图在.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 …),以执行程序的另一部分。

关于如何做的任何想法?


阅读 690

收藏
2020-11-30

共1个答案

小编典典

要了解这一点,您首先需要了解如何在shell提示符下运行该命令。

$ sh -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();

将(可能)做您想做的事情。

2020-11-30