【问题标题】:open command line in specific dir and execute command with processbuilder not working [duplicate]在特定目录中打开命令行并使用 processbuilder 执行命令不起作用 [重复]
【发布时间】:2015-06-18 13:41:08
【问题描述】:

我正在尝试从 java 运行命令行。从 java 中,代码应该打开一个新的 cmd,更改为特定目录 (C:\EasyTest\4\bin) 并从那里运行命令 (runTC 'testCase/test2.tc -c love -k ShinRamyun -logToConsole')。为此,我尝试了多种方法,但均未奏效。

String[] command = {"CMD", "/C", "start", "runTC","testCase/test2.tc -c love -k ShinRamyun -logToConsole"};
     ProcessBuilder probuilder = new ProcessBuilder( command );


  probuilder.directory(new File("C:\\EasyTest\\4\\bin"));

       Process process = probuilder.start();

它返回打开的 cmd 1 秒并直接退出。我看不到结果,runTC执行的应用程序不受影响。

反之,我跑

 ProcessBuilder processBuilder = new ProcessBuilder( "cmd", "/c","start", "cd C:\\EasyTest\\4\\bin && runTC testCase/test2.tc -c love -k ShinRamyun -logToConsole\"" );
      processBuilder.start();

但它只启动标题为 'cd C:\EasyTest\4\bin && runTC testCase/test2.tc -c love -k ShinRamyun -logToConsole\' 和项目相关目录的 cmd

我想要的是从 cmd 的特定目录运行 'runTC testCase/test2.tc -c love -k ShinRamyun -logToConsole'

有什么建议吗?

【问题讨论】:

  • 我认为应该是cmd.exe 而不仅仅是cmd
  • 我试过但返回相同的东西
  • 首先它是 cmd.exe 正如已经指出的那样。为什么你使用“/c”?这将在执行您的命令后终止 cmd 窗口
  • 我把 /c 用来显示 cmd。我也放了 cmd.exe 但给出了相同的结果

标签: java command-line cmd command-line-arguments processbuilder


【解决方案1】:

试试这个

public static void main(String args[]) {
    try {
        Runtime.getRuntime().exec("cmd.exe /c start");

    } catch (IOException ex) {
        ex.printStackTrace();
    }
}

【讨论】:

    猜你喜欢
    • 2015-10-18
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    相关资源
    最近更新 更多