Вы не видите никакого вывода, потому что вы не читаете стандартный вывод ваших процессов из вашего основного класса.
Есть несколько способов сделать это, но давайте для простоты остановимся на методе ProcessBuilder
inheritIO()
.
package praktikum;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
ProcessBuilder pb1 = new ProcessBuilder("java", "-cp", ".", "praktikum.Server");
// This will make sure the standard input and output of your subprocess pb1
// are the same as this process (Main.java)
pb1.inheritIO();
ProcessBuilder pb2 = new ProcessBuilder("java", "-cp", ".", "praktikum.Client");
// This will make sure the standard input and output of your subprocess pb2
// are the same as this process (Main.java)
pb2.inheritIO();
pb1.start();
pb2.start();
}
}
Теперь, когда вы запустите ваш Main. java, вы сможете увидеть, какие выходные данные / ошибки печатают ваши подпроцессы. Если вы видите ошибки ниже:
Error: Could not find or load main class praktikum.Client
Error: Could not find or load main class praktikum.Server
как обходной путь , я бы посоветовал передать абсолютный путь к ProcessBuilder вместо '.'
, особенно если вы работаете с IDE:
new ProcessBuilder("java", "-cp", "/path/to/package", "praktikum.Server");
Дополнительная литература: