Wenn ich einen Befehl kill -3 <pid>
an mein Java-Programm ausgabe, generiert es den Thread-Dump auf der Konsole. Wie leite ich das in eine Datei um?Speicherort für JVM-Thread-Dump
Antwort
zwei Optionen:
Führen Sie Ihre Java-Anwendung mit stdout umgeleitet
java com.example.MyApp > out.txt
Verwenden jstack
statt.
Das jstack Dienstprogramm ermöglicht es Ihnen, ein Thread-Dump zu erhalten und die Ausgabe in der aktuellen Konsole anstelle der Standardausgabe der Java-Anwendung zu senden, so dass Sie sie umleiten.
Zum Beispiel, wenn die PID Ihrer Java-Anwendung 12345 ist (verwenden Sie das Dienstprogramm jps es schnell zu finden):
jstack 12345 > threads.txt
Wenn Sie Details aller Threads und andere JVM Details, versuchen jconsole.
Bitte fügen Sie Ihrer Anwendung folgende JVM-Argumente bei. Thread-Dump sollte in dump.log erfasst werden.
-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=dump.log
Bitte beachten Sie, dass es nicht umleitet, sondern die JVM-Diagnoseprotokollierung aktiviert. Also, es könnte auch möglich sein, über Kopf.
Wenn Sie jedoch JDK in der Umgebung verwenden können, indem Sie jstack oder jcmd (jcmd is preferred with JDK 1.8) verwenden, können Sie Thread-Dumps erfassen und in eine Datei umleiten.
- 1. Benutzerdefinierter Speicherort für .pypirc-Datei
- 2. Speicherort für Benutzerkonfigurationsdateien in Windows
- 3. Dateidialog für FTP-Speicherort öffnen
- 4. zufälligen Speicherort für Schaltflächen generieren
- 5. Ändern Standard-Speicherort für vb.net
- 6. Temporärer Ordner/Speicherort für SharePoint
- 7. Korrekter Speicherort des Navigationscontrollercodes für iOS?
- 8. .htaccess Speicherort für OpenStack mit Go
- 9. alternative appspec.yml Speicherort für AWS CodePipeline/CodeDeploy
- 10. Überschreibender Speicherort für Razor View Engine
- 11. Speicherort der Konfiguration für das Dashboard URL
- 12. Speicherort für die Konfiguration in einem virtualenv
- 13. Suche nach einem Download-Speicherort für XSDClassGen
- 14. Speicherort für tragbare ausführbare Datei speichern
- 15. Speicherort für apple-app-site-association datei
- 16. Isolierter Speicherort für Windows Phone 7?
- 17. Speicherort für Dateien auf Glassfish Server
- 18. VSTO - Der beste Speicherort für Excel-Arbeitsmappeneinstellungen
- 19. libAdIdAccess.a Speicherort?
- 20. log4j2: Speicherort für die Log4jContextSelector-Systemeigenschaft für die asynchrone Protokollierung
- 21. Einrichten von Bundles für TextMate: Speicherort für den Ausführungsbefehl
- 22. Speicherort der Datenbank?
- 23. Xcode C++ Bibliothek Speicherort
- 24. Lokaler variabler Speicherort
- 25. Windows Mobile und Speicherort
- 26. Xcode 4.4 Vorlage Speicherort
- 27. WCF wsdl wsdl: Speicherort importieren, soap: Adresse Speicherort haben Maschinenname?
- 28. JavaScript Primitive: der gleiche Speicherort, neuer Speicherort oder Engine-abhängig?
- 29. Change EditorTemplates Ordner Speicherort
- 30. Netbeans jvi vimrc Speicherort
OK danke Leute. Ich habe es herausgefunden. Der Befehl kill -3 veranlasste meinen jvm, auf STDOUT zu schreiben. Ich habe dies gerade zu meinem Java-Aufruf 1> "Pfad zu einer Logdatei" hinzugefügt und habe das zum Laufen gebracht. – user242591