Behebung eines java.io.Console-Supportproblems in der Eclipse-IDE
Entwickler, die die Eclipse-IDE verwenden, stoßen häufig auf die Einschränkung, dass System.console() zurückkehrt null beim Versuch, konsolenbasierte Ein- und Ausgaben zu verwalten. Dies liegt daran, dass Eclipse Programme als Hintergrundprozesse ausführt und nicht in der traditionellen Top-Level-Umgebung mit einem Konsolenfenster.
Lösung: Programme als Top-Level-Prozesse starten
Es ist zwar nicht möglich, Eclipse dazu zu zwingen, Programme als Prozesse der obersten Ebene auszuführen, es gibt jedoch einen Workaround. Durch Entfernen des Programms aus der Eclipse-Umgebung und Festlegen seiner erstellten Klassen im JRE-Klassenpfad kann die Ausführung extern initiiert werden.
java -cp workspace\p1\bin;workspace\p2\bin foo.Main
Schrittweises Debuggen mit Remote Debugger
Für das schrittweise Debuggen erstellen Sie eine Windows-Batchdatei (*.bat) und starten sie über eine cmd.exe-Konsole. Diese Batchdatei startet die JVM-Konsole im Debug-Modus und ermöglicht so ein externes Debugging innerhalb der Eclipse-IDE.
1. Erstellen Sie eine Batch-Datei für die externe Ausführung
@ECHO OFF SET A_PORT=8787 SET A_DBG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%A_PORT%,server=y,suspend=y java.exe %A_DBG% -cp .\bin Main
Führen Sie diese Batchdatei in einer Konsole aus, um das Debuggen zu starten.
2. Konfigurieren Sie den Debug-Start einer Remote-Java-Anwendung : Standard (Socket Attach)
Host: localhostPort: 8787Starten Sie die Debug-Startkonfiguration.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3