Dans cette section, essayez le débogage à distance Java et enregistrez des choses simples pour commencer. Même si c'est un record!
Écrivez un programme simple et tapez-le dans un pot et jetez-le dans un serveur distant pour s'exécuter, simulant que le serveur distant s'exécute. Prenons l'exemple du programme Java Calling Shell Script Script. Le code source est le suivant (le programme suivant est un exemple simple de code, ne vous soucie pas de la spécification du code):
Importer java.io.inputStream; classe publique Javashell {public static void main (String [] args) lève une exception {try {String Grant = "Chmod u + x soumi-job.sh"; Runtime runtime = runtime.getRuntime (); Process GrantProc = runtime.exec (subvention); int resultCode = GrantProc.WaitFor (); System.out.println (résultat); GrantProc = runtime.exec ("./ soumi-job.sh"); ResultCode = GrantProc.WaitFor (); System.out.println (résultat); InputStream dans = GrantProc.getInputStream (); octet [] tampon = nouveau octet [1024]; Int Code; while ((code = in.read (tampon, 0, buffer.length))! = -1) {System.out.print (new String (tampon, 0, code)); } / ** * La boucle morte empêche le débogueur de quitter avant d'être connecté (testez la fonction de paramètre de suspension) * / System.out.println ("Le script shell a été exécuté, et la tâche d'impression chronométrée commencera!"); int i = 0; while (true) {Thread.Sleep (2000); System.out.println ("Ceci est le" th "+ (++ i) +" deuxième boucle! ");}} Catch (exception e) {System.out.println (" Ceci est une exption! ");} Enfin {}}}Après l'avoir engagé sur le serveur distant, exécutez-le:
Copiez le code comme suit: java -xdebug -xnoagent -djava.compiller = non -xrunjdwp: transport = dt_socket, adresse = 9999, server = y, suspendre = y -jar javashell.jar
Le programme sera bloqué et attendra que le débogueur se connecte. Pour le moment, nous pouvons utiliser Eclipse pour le débogage à distance:
Cliquez sur Debugger pour connecter et suivre le code source à exécuter:
Il y a une sortie à distance, prouvant que le programme distant suivi l'exécution du débogueur:
À ce stade, nous terminons le processus de débogage. Ensuite, essayez le cas où le paramètre suspend = n:
Copiez le code comme suit: java -xdebug -xnoagent -djava.
Pour le moment, vous constaterez que le programme distant ne bloque pas et n'attend pas la connexion de débogueur de débogueur, mais le programme s'exécute normalement:
Pour le moment, nous pouvons utiliser le débogueur distant d'Eclipse pour le débogage à distance, mais il convient de noter que notre point d'arrêt local ne peut être appuyé que sur le code distant qui n'a pas été exécuté ou le code exécuté. Par exemple, nous pouvons casser les points dans la boucle morte (la boucle morte est le code qui est exécuté tout le temps):
Puis démarrez le débogueur:
Restez au point d'arrêt. Suivez ensuite la position de point d'arrêt pour poursuivre nos travaux de débogage. À ce stade, vous devez connaître le rôle du paramètre de suspension:
Dans les paramètres de débogage JVM, il existe un paramètre appelé "Suspende", qui a deux valeurs, "Y" ou "N".
Si vous souhaitez déboguer au début, définissez le paramètre sur "Suspende = Y", afin que Eclipse se connecte à distance aux applications Java.
Si vous souhaitez d'abord exécuter le projet, puis connecter Eclipse, vous pouvez définir le paramètre sur "Suspender = N", afin que l'application Java s'exécute normalement, puis Eclipse commencera la connexion distante.
Plus de détails de paramètres:
-Xdebug Activer le débogage.
-Xnoagent Désactiver le débogueur par défaut Sun.tools.debug.
-Djava ..compiller = Aucune interdit le chargement du compilateur JIT.
-Xrunjdwp charge l'exemple d'exécution de référence JPDA de JDWP.
Le transport est utilisé pour communiquer entre les débogueurs et les processus utilisés par les machines virtuelles.
TRANSFERT DT_SOCKET SOCKET.
DT_SHMEM Partagé Transfert de mémoire, Windows uniquement.
server = y / n si la machine virtuelle doit être exécutée en tant que serveur de débogage.
Adresse = 3999 Le numéro de port du serveur de débogage, le numéro de port utilisé par le client pour se connecter au serveur.
suspendre = y / n, l'opportunité de démarrer la machine virtuelle après que le client de débogage établit une connexion.
Eclipse Debug Raccourci Keys:
F5 passez
F6 pas à pas
F7 sort
F8 continue au prochain point de rupture
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.