【问题标题】:Run cmd commands through java processBuilder通过java processBuilder运行cmd命令
【发布时间】:2016-10-06 02:39:30
【问题描述】:

我正在尝试使用 ProcessBuild 来运行 cmd 语句。

ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "start");
Process p = pb.start();

但是我只能打开cmd.exe

我不知道如何在 ProcessBuild 中添加语句,以便文件夹中的所有 jar 都可以运行。 通常,我打开 stanford-corenlp-full-2015-12-09 文件夹中的 cmd,并添加此语句以运行: java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer

那么如何写这个语句Run cmd commands through java?? 我收到错误,因为该语句包含“*”。 如何编辑 ProcessBuilder 以便我可以运行该语句? 非常感谢

【问题讨论】:

    标签: java cmd processbuilder


    【解决方案1】:

    您可以设置执行命令的目录

        List<String> cmds = Arrays.asList("cmd.exe", "/C", "start", "java", "-mx4g", "-cp", "*", "edu.stanford.nlp.pipeline.StanfordCoreNLPServer");
        ProcessBuilder builder = new ProcessBuilder(cmds);
        builder.directory(new File("D:/stanford-corenlp-full-2015-12-09"));
        Process proc = builder.start();
    

    更新在 cmets 中要求

        OutputStream out = proc.getOutputStream();
        new Thread(() -> {
            try (BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out))) {
                bw.write("[command here]");
                bw.flush();
            } catch (IOException ioe) {
                ioe.printStackTrace();
            }
    
        }).start();
    

    【讨论】:

    • 非常感谢!有用。我可以问一个问题吗? java如何关闭stanford程序的cmd?
    • 对不起,我用完Stanfordserver后,请问在这种情况下如何关闭CMD?????? @Saravana
    猜你喜欢
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 2016-06-03
    • 1970-01-01
    相关资源
    最近更新 更多