运行 cmd 命令通过 java processBuilder
Run cmd commands through java processBuilder
我正在尝试使用 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
那么通过java这条语句运行cmd命令怎么写??
由于语句包含“*”,我收到错误。
如何编辑 ProcessBuilder 以便我可以 运行 该语句?
非常感谢
您可以设置执行命令的目录
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();
更新 根据评论中的要求
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();
我正在尝试使用 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
那么通过java这条语句运行cmd命令怎么写?? 由于语句包含“*”,我收到错误。 如何编辑 ProcessBuilder 以便我可以 运行 该语句? 非常感谢
您可以设置执行命令的目录
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();
更新 根据评论中的要求
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();