Как использовать API ProcessBuilder в JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Как использовать API ProcessBuilder в Java

Сообщение Anonymous »

Я хочу вызвать Player1DPID.java из класса Player. Player1DPID работает, если я запускаю его независимо. Вот мой класс Player1DPID. Я новичок в ProcessBuilder.
public class Player2DPID {

static final String FILE_PATH_PLAYER1 = "messagesToPlayer1.txt";
static final String FILE_PATH_PLAYER2 = "messagesToPlayer2.txt";

private static int messageCount = 0;

public static void main(String[] args) {
try {
readMessageFromPlayer();
System.out.println("Player2 reads " + messageCount + " messages from " + FILE_PATH_PLAYER2);
System.out.println("Player2 sends message count " + messageCount + " to Player1");
} catch (IOException e) {
e.printStackTrace();
}
}

public static void readMessageFromPlayer() throws IOException {
StringBuilder messages = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(FILE_PATH_PLAYER2))) {
String line;
while ((line = reader.readLine()) != null) {
messageCount++;
messages.append(line + messageCount).append("\n");
System.out.println("Player2 reads: " + line);
}
}
try (BufferedWriter writer = new BufferedWriter(new FileWriter(FILE_PATH_PLAYER1))) {
writer.write(messages.toString());
}
}


Вот мой класс игрока, из которого я хочу вызвать класс Player1DPID


public class Player {
public static void main(String[] args) throws IOException, InterruptedException {
try {
//"java.exe", "-cp", "src", "Player1DPID"
ProcessBuilder pb1 = new ProcessBuilder();
pb1.command("Player1DPID.java","src");
//pb1.inheritIO();
pb1.start();
} catch (OException e) {
e.printStackTrace();
}
}
}

Below is the exception

java.io.IOException: Cannot run program "Player1DPID.java": CreateProcess error=2, The system cannot find the file specified
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
at com.T.game.Player.main(Player.java:16)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.base/java.lang.ProcessImpl.create(Native Method)
at java.base/java.lang.ProcessImpl.(ProcessImpl.java:499)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110


Подробнее здесь: https://stackoverflow.com/questions/784 ... pi-in-java

Вернуться в «JAVA»