С этим кодом проблем нет.
Что означает выполнение другой программы Java внутри.
В классе Process
есть метод для получения вывода программы, вы должны перенаправить этот вывод на свой, если вы хотите увидеть результат.
Вот пример использования "современной" альтернативы Runtime.exec
// Hello.java says Hello to the argument received.
class Hello {
public static void main ( String [] args ) {
System.out.println( "Hello, "+args[ 0 ] );
}
}
// CallHello.java
// Invokes Hello from within this java program
// passing "world" as argument.
import java.io.InputStream;
import java.io.IOException;
public class CallHello {
public static void main( String [] args ) throws IOException {
Process child = new ProcessBuilder("java", "Hello", "world").start();
// read byte by byte the output of that progam.
InputStream in = child.getInputStream();
int c = 0;
while( ( c = in.read() ) != -1 ) {
// and print it
System.out.print( (char)c);
}
}
}
Выход:
Hello world