【问题标题】:firing a command in terminal from java program从 java 程序在终端中触发命令
【发布时间】:2012-05-07 11:58:13
【问题描述】:

我需要编写一个 java 程序,执行时将命令推送到终端

我尝试使用 runtime.exec();但对我来说效果不佳

我想要的是在终端中执行的“/home/raj/Desktop/java -jar test.jar”

谁能帮我解决一下。

【问题讨论】:

  • 导入你要执行的jar,从Java中执行main方法不是更方便吗?
  • I tried using runtime.exec(); 你能详细说明一下吗?
  • Runtime.exec() 是这样做的方法。为什么它对你不利?你有任何异常吗?
  • 字符串测试 = "/home/raj/Desktop";进程 p =Runtime.getRuntime().exec(test);只有这个我想要
  • 是的,使用“cd”注释时会抛出一些异常,为什么会这样...你能给出正确的命令来使用 cd /home/raj/Desktop

标签: java linux shell


【解决方案1】:

如果你想实际启动一个终端窗口(而不是仅仅执行 java 进程),你需要启动 xterm(或类似的东西)并告诉 xterm 运行 java

String command= "/usr/bin/xterm -e /home/raj/Desktop/java -jar test.jar"; 
Runtime rt = Runtime.getRuntime();      
Process pr = rt.exec(command);

【讨论】:

  • 我不认为这是他想要的。他说的是终端,但意思是执行我猜的 Unix 命令。
【解决方案2】:

请参考以下示例。带​​有 java 程序的参数列表。

Process proc = null;
try {
    String cmd[] = {"gnome-terminal", "-x", "bash", "-c", "ls; echo '<enter>'; read" };


    proc = Runtime.getRuntime().exec(cmd, null, wd);
} catch (IOException e) {
    e.printStackTrace();
}

【讨论】:

    【解决方案3】:

    您可以使用 jar 文件的完整路径作为"java" 的参数

    String command= "java -jar /home/raj/Desktop/test.jar"; 
    Runtime rt = Runtime.getRuntime();      
    Process pr = rt.exec(command);
    

    【讨论】:

      猜你喜欢
      • 2018-08-21
      • 2013-02-27
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      • 2014-06-22
      • 2015-12-17
      • 1970-01-01
      相关资源
      最近更新 更多