打开 terminal/prompt 并传递命令 (ping)
Open terminal/prompt and pass a comand (ping)
我的 Java 桌面应用程序需要一些帮助。
我有一个按钮可以调用(这是我的意图)终端 (Linux) 或 prompt/cmd (Windows) 并传递一些命令(我正在尝试使用ping 命令)。
我只知道怎么打开终端,但是我不会传递命令。我该怎么做?
谢谢。
已编辑:
我此时的代码:
Runtime rt = Runtime.getRuntime();
String sistemaOperacional = System.getProperty("os.name").toLowerCase();
String ip = "192.168.7.1";
String comando = "ping -c 100 "+ip;
if (sistemaOperacional.contains("linux")){
try {
rt.exec("gnome-terminal ");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (sistemaOperacional.contains("win")){
try {
rt.exec("cmd.exe /c start command");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else{
JOptionPane.showMessageDialog(null, "Não foi possível identificar o sistema operacional!");
}
您应该在终端文档中搜索用于设置终端启动时 运行 的命令的选项。例如,对于 xterm
,它是 -e
,因此对于 运行 来自 xterm
中 Java 代码的命令,您可以执行,例如:
Runtime.getRuntime().exec("xterm -e ls;read"); // read is here just for the terminal not to close right away
要弹出终端,运行 ls
并等待用户按回车键,直到终端关闭。
但是既然你不应该依赖你的用户有一个特定的默认终端,你最好使用系统默认,-e
是许多终端的标准参数(gnome-terminal
也使用它,例如):
Runtime.getRuntime().exec("x-terminal-emulator -e ls;read");
我的 Java 桌面应用程序需要一些帮助。
我有一个按钮可以调用(这是我的意图)终端 (Linux) 或 prompt/cmd (Windows) 并传递一些命令(我正在尝试使用ping 命令)。
我只知道怎么打开终端,但是我不会传递命令。我该怎么做?
谢谢。
已编辑:
我此时的代码:
Runtime rt = Runtime.getRuntime();
String sistemaOperacional = System.getProperty("os.name").toLowerCase();
String ip = "192.168.7.1";
String comando = "ping -c 100 "+ip;
if (sistemaOperacional.contains("linux")){
try {
rt.exec("gnome-terminal ");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (sistemaOperacional.contains("win")){
try {
rt.exec("cmd.exe /c start command");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else{
JOptionPane.showMessageDialog(null, "Não foi possível identificar o sistema operacional!");
}
您应该在终端文档中搜索用于设置终端启动时 运行 的命令的选项。例如,对于 xterm
,它是 -e
,因此对于 运行 来自 xterm
中 Java 代码的命令,您可以执行,例如:
Runtime.getRuntime().exec("xterm -e ls;read"); // read is here just for the terminal not to close right away
要弹出终端,运行 ls
并等待用户按回车键,直到终端关闭。
但是既然你不应该依赖你的用户有一个特定的默认终端,你最好使用系统默认,-e
是许多终端的标准参数(gnome-terminal
也使用它,例如):
Runtime.getRuntime().exec("x-terminal-emulator -e ls;read");