Java 检查端子是否打开

Java 检查端子是否打开,java,Java,我现在正在使用Ubuntu,我能够通过Java代码打开终端。但我的问题是,当我在终端打开后关闭程序时,我会看到一条消息,说我打开的终端已经关闭了 这是我打开终端的代码: String command = "gnome-terminal -x bash cd ~/Desktop"; String cmd[] = { "gnome-terminal", "-x", "bash", "-c", "sudo gedit ~/Desktop/wat.txt" }; Runtime rt = Runtime

我现在正在使用Ubuntu,我能够通过Java代码打开终端。但我的问题是,当我在终端打开后关闭程序时,我会看到一条消息,说我打开的终端已经关闭了

这是我打开终端的代码:

String command = "gnome-terminal -x bash cd ~/Desktop";
String cmd[] = { "gnome-terminal", "-x", "bash", "-c", "sudo gedit ~/Desktop/wat.txt" };
Runtime rt = Runtime.getRuntime();      
Process pr = rt.exec(cmd);
您可以调用进程。API说:

如有必要,使当前线程等待,直到此进程对象表示的进程终止

返回进程的退出值。按照惯例,0表示正常终止


如果您希望程序继续运行,请确保在单独的线程中调用代码。

只是一个问题,为什么要启动终端,然后从该线程启动gedit?为什么不直接启动gedit?因为它是一个应用程序。用户是懒惰的。我知道你想为你的(懒惰的)用户启动gedit,但为什么要启动终端,而不是直接启动gedit呢?使用当前命令,他们将看到弹出一个终端,打开gedit。只是想知道你是否真的需要那个终端。不。。这是一个很好的例子。这是另一个例子。如果用户希望通过wget下载,该怎么办。像我这样的linux新手在终端上很害怕。所以我想创建一个gui。如果你想运行wget,你也不需要终端。如果您要从Java应用程序执行命令“wget”或“gedit”,它将在没有任何终端的情况下启动。终端主要是让用户可以手动启动程序。如果你只想启动程序,你可以不用终端。使用rt.exec(cmd)运行的任何命令都将像在终端中键入一样启动。