Versuchen Sie in diesem Abschnitt Java Remote -Debugging und zeichnen Sie einfache Dinge auf, um loszulegen. Auch wenn es eine Aufzeichnung ist!
Schreiben Sie ein einfaches Programm und geben Sie es in ein Glas ein und werfen Sie es in einen Remote -Server zum Ausführen, um zu simulieren, dass der Remote -Server ausgeführt wird. Nehmen Sie als Beispiel Java Calling Shell Skript -Einreichungsprogramm. Der Quellcode lautet wie folgt (das folgende Programm ist ein einfacher Beispielcode, der sich nicht für die Codespezifikation interessiert):
import Java.io.inputStream; öffentliche Klasse Javasell {public static void main (String [] args) löst eine Ausnahme aus {try {String Grant = "chmod u+x subjekt-job.sh"; RunTime runtime = runtime.getRuntime (); Process GrantProc = runTime.exec (Grant); int resultcode = GrantProc.waitfor (); System.out.println (resultcode); GrantProc = runTime.exec ("./ Suble-job.sh"); resultcode = GrantProc.waitfor (); System.out.println (resultcode); InputStream in = GrantProc.getInputStream (); byte [] buffer = neues byte [1024]; int Code; while ((code = in.read (buffer, 0, buffer.length))! = -1) {System.out.print (neuer String (Buffer, 0, Code)); } / ** * Die tote Schleife verhindert, dass der Debugger vor dem Anschluss beendet ist (testen Sie die Suspend -Parameterfunktion) * / system.out.println ("Shell -Skript wurde ausgeführt, und die zeitgesteuerte Druckaufgabe beginnt!"); int i = 0; while (wahr) {thread.sleep (2000); System.out.println ("Dies ist das" Th " + (++ i) +" zweite Schleife! ");}} Catch (Ausnahme E) {System.out.println (" Dies ist eine Excption! ");} Schließlich {}}}Führen Sie ihn aus, nachdem Sie es auf dem Remote -Server verpflichtet haben:
Kopieren Sie den Code wie folgenden
Das Programm wird blockiert und warten, bis der Debugger eine Verbindung herstellt. Zu diesem Zeitpunkt können wir Eclipse für das Remote -Debugging verwenden:
Klicken Sie auf Debugger, um eine Verbindung herzustellen und den ausführenden Quellcode zu verfolgen:
Es gibt Ausgabe aus der Ferne, in der beweist, dass das Remote -Programm die Ausführung von Debugger verfolgt:
Zu diesem Zeitpunkt führen wir den Debugging -Prozess ab. Versuchen Sie als nächstes den Fall, in dem der Parameter suspend = n:
Kopieren Sie den Code wie folgenden
Zu diesem Zeitpunkt werden Sie feststellen, dass das Remote -Programm die Debugger -Debugger -Verbindung nicht blockiert und wartet, aber das Programm wird normalerweise ausgeführt:
Zu diesem Zeitpunkt können wir den Remote -Debugger von Eclipse für das Remote -Debugging verwenden, aber es ist zu beachten, dass unser lokaler Haltepunkt nur an dem Remote -Code getroffen werden kann, der nicht ausgeführt wurde oder der Code ausgeführt wird. Zum Beispiel können wir Punkte in der toten Schleife brechen (die tote Schleife ist der Code, der ständig ausgeführt wird):
Dann starten Sie Debugger:
Bleiben Sie am Haltepunkt. Folgen Sie dann der Pause -Position, um unsere Debug -Arbeit fortzusetzen. Zu diesem Zeitpunkt sollten Sie die Rolle des Suspend -Parameters kennen:
In den JVM -Debug -Parametern gibt es einen Parameter namens "Suspend", der zwei Werte hat, "y" oder "n".
Wenn Sie zu Beginn debuggen möchten, stellen Sie den Parameter auf "suspend = y" ein, damit Eclipse eine ausgebildete Verbindung zu Java -Anwendungen herstellt.
Wenn Sie das Projekt zuerst ausführen und Eclipse anschließen möchten, können Sie den Parameter auf "suspend = n" festlegen, damit die Java -Anwendung normal ausgeführt wird, und dann startet Eclipse die Remote -Verbindung.
Weitere Parameterdetails:
-Xdebug Aktivieren Sie das Debuggen.
-Xnoagent Deaktivieren Sie den Standard -Sun.tools.debug -Debugger.
-Djava.compiler = Keine verbietet das Laden des JIT -Compilers.
-Xrunjdwp lädt JPDA -Referenzausführungsbeispiel von JDWP.
Der Transport wird verwendet, um zwischen Debuggern und Prozessen zu kommunizieren, die von VMs verwendet werden.
DT_Socket Socket Transfer.
DT_SHMEM Shared Speicherübertragung, nur Windows.
Server = y/n, ob die VM als Debugging -Server ausgeführt werden muss.
Adresse = 3999 Die Portnummer des Debug -Servers, die vom Client verwendete Portnummer, um eine Verbindung zum Server herzustellen.
suspend = y/n, ob die VM nach dem Debug -Client eine Verbindung hergestellt hat.
Eclipse -Debug -Verknüpfungsschlüssel:
F5 Schritt in
F6 Schritt um
F7 treten Sie aus
F8 Fahren Sie mit dem nächsten Haltepunkt fort
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.