12 Stimmen

Wie sendet man eine Unterbrechungstastensequenz an einen Java-Prozess?

Ich habe einen Handle auf eine Java Process-Instanz und die damit verbundenen Streams. Es ist ein Konsolenprogramm. Ich möchte eine Unterbrechungssequenz simulieren. Unter Windows ist dies Strg-C. Ist dies ohne native Programme möglich?

Der Grund dafür: Das Konsolenprogramm ist selbst eine Befehlszeilenkonsole, die eine virtuelle Maschine für eine andere Sprache steuert. Der Benutzer kann von diesem Konsolenprogramm aus ein anderes Programm ausführen. Während ein Programm läuft, unterbricht die Break-Sequenz die Ausführung des zugrunde liegenden Programms und veranlasst das Konsolenprogramm, in den Debug-Modus zu wechseln.

Wir haben diesen Konsolendebugger in Java verpackt, so dass er über eine IDE (Eclipse) gesteuert werden kann. Das Senden der Break-Sequenz entspricht dem Drücken von "Suspend" im Eclipse-Debugger.

5voto

Eddie Punkte 52504

Wahrscheinlich sollten Sie sich informieren über SendeSignal . Dadurch wird ein Strg-Break an einen Java-Prozess gesendet. Ich nehme an, Ihr Ziel ist es, einen Stack-Dump zu verursachen, was ein CTRL-C (Signal 3 alias SIGQUIT) für einen laufenden Java-Prozess tun wird?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X