Мне интересно, есть ли способ сделать какую-то «ссылку» между Java-приложением и одним окном CMD, где я могу отправить несколько команд отдельно -> без компоновщика. Допустим, следующая команда должна быть рассчитана, но помещена в то же окно CMD.
В следующем примере я попытался использовать BufferedWriter.write, который не работает.
Заранее благодарю за ответы.
Main.java
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
CmdProcess cmdProcess = new CmdProcess();
cmdProcess.executeCmdCommand("echo Hello World");
// I do not want to post commands together
cmdProcess.executeCmdCommand("ping localhost");
}
}
CmdProcess.java
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class CmdProcess {
public CmdProcess() throws IOException {
startUpProcess();
}
private Process cmd;
private BufferedWriter writer;
private void startUpProcess() throws IOException {
String startCommand = "cmd.exe /c start ";
// init CMD
try {
setCmd(Runtime.getRuntime().exec(startCommand));
} catch (IOException e) {
System.err.println(e.toString());
throw new IOException("Not able to launch CMD in CmdProcess.startUpProcess().");
}
// init writer
writer = new BufferedWriter(new OutputStreamWriter(getCmd().getOutputStream()));
}
public void executeCmdCommand(String command) throws IOException {
writer.write(command);
writer.flush();
}
public Process getCmd() {
return cmd;
}
public void setCmd(Process cmd) {
this.cmd = cmd;
}
}