Es ist ein bisschen komisch, aber Sie können das zweite Programm ausführen, ohne es zu fälschen. Einfach die Hauptmethode aufrufen. Vergiss also den Laufzeitabschnitt und tu dies:
%Vor%Natürlich müssen Sie sam2 zur Kompilierzeit kompilieren
Jeder Prozess muss laufen und beendet werden können. Sie können %code% für diesen Zweck verwenden. Ebenso müssen Sie alle Ausgaben des Prozesses zur gleichen Zeit verbrauchen. %code% wird blockiert, so dass Sie ein %code% verwenden müssen, um die Eingabe zu lesen (und ggf. die Ausgabe in den Prozess schreiben)
Abhängig vom Speicherort der Java / Class-Datei müssen Sie möglicherweise auch einen Startordner angeben, von dem aus die Ausführung des Prozesses gestartet werden kann.
Das meiste ist mit %code%
wesentlich einfacher %Vor%Nun sollten Sie natürlich die Rückgabeergebnisse der Prozesse überprüfen und vielleicht einen besseren Mechanismus für die Interaktion mit den Prozessen erzeugen, aber das ist die Grundidee ...
Ich arbeite an einem einfachen Java-Programm. Es kompiliert und führt einfach ein anderes Java-Programm aus. Ich verwende die Runtime.exec () -Funktion zum Kompilieren und Ausführen. Es gibt kein Problem mit der Kompilierung. aber wenn es läuft, wenn das zweite Programm eine Eingabe benötigt, um von der Tastatur zu lesen, kann ich es vom Hauptprozess nicht geben. Ich habe getOutputStream () -Funktion verwendet. aber es konnte nicht helfen. Ich werde meinen Code bereitstellen.
%Vor%Dies ist mein Master-Programm (sam.java).
Das Folgende ist der Code von sam2.java
%Vor%Es gibt kein Problem, wenn mein zweites Programm nur druckbare Anweisungen enthält. Aber das Problem entsteht, wenn ich etwas von dem anderen lesen muss.
Sie können einfach die Hauptmethode der zweiten Klasse aufrufen. Die Hauptmethode ist wie jede andere statische Methode.