Wie wird die Interrupt-Key-Sequenz an einen Java-Prozess gesendet?

9

Ich habe eine Kennung für eine Java Process-Instanz und die zugehörigen Streams. Es ist ein Konsolenprogramm. Ich möchte eine Breaksequenz simulieren. Unter Windows ist dies Strg-C. Ist das ohne Einheimische möglich?

Der Grund dafür: Das Konsolenprogramm ist eine Befehlszeilenkonsole, die eine virtuelle Maschine für eine andere Sprache steuert. Der Benutzer kann ein anderes Programm von diesem Konsolenprogramm aus ausführen. Während ein Programm ausgeführt wird, unterbricht die Unterbrechungssequenz die Ausführung des zugrunde liegenden Programms und verursacht, dass das Konsolenprogramm in den Debug-Modus wechselt.

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

    
Ben Vitale 26.05.2009, 21:35
quelle

1 Antwort

4

Sie möchten wahrscheinlich in SendSignal nachsehen. Dadurch wird ein Ctrl-Break an einen Java-Prozess gesendet. Ich nehme an, Ihr Ziel ist es, einen Stack-Dump zu verursachen, den ein CTRL-C (Signal 3 aka SIGQUIT) für einen laufenden Java-Prozess tun wird?

    
Eddie 26.05.2009 21:45
quelle