【问题标题】:Open terminal/prompt and pass a comand (ping)打开终端/提示并传递命令(ping)
【发布时间】:2015-04-08 07:45:07
【问题描述】:

我的 Java 桌面应用程序需要一些帮助。

我有一个按钮,可以调用(我的意图)终端(Linux)或提示符/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!");
            }

【问题讨论】:

  • 您能否编辑您的问题以包含启动终端或命令提示符的代码?
  • 已编辑。这会调用终端,但没有命令...

标签: java bash cmd terminal prompt


【解决方案1】:

您应该在终端的文档中搜索设置将在终端启动时运行的命令的选项。例如,对于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");

【讨论】:

  • 在你放“read”的地方是我传递我的var内容的地方吗?
  • 您可以在-e 之后放置任何命令。由于 command 只是一个字符串,因此您可以使用变量在 Java 代码中编写该命令,是的。我输入了read,这样终端就不会在弹出后立即关闭。可能有一种更好的方法可以让终端与提供的 -e 参数保持打开状态(当然,如果你需要的话),但我没有找到。
  • 是的,它可以工作(在 Linux 上)。我尝试使用pingcommand 并且有效。 "x-terminal-emulator -e"+command。在 Windows 中,我可以尝试同样的事情吗?
  • @Tux123 不幸的是,我不熟悉 Windows 的 cmd 或任何他们的终端模拟器,如果遇到困难,请尝试自己搜索并发布其他问题。接受有用的答案也永远不会受到伤害; )
  • @Tux123 等等,你已经知道它是cmd /c command,只需在你的java代码中输入"cmd /c"+ command
猜你喜欢
  • 1970-01-01
  • 2011-08-08
  • 2020-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多