Ich habe eine Anwendung, die Benutzereingabe für Kennwort benötigt.Wie zu bestimmen, ob GraphicsEnvironment vorhanden ist
Ich möchte entweder das Passwort von der Konsole lesen (wenn das Betriebssystem eines unterstützt, z. B. Unix) oder ein JOptionPane anzeigen und den Benutzer zur Eingabe seines Passworts auffordern (wenn das Betriebssystem die grafische Benutzeroberfläche Windows unterstützt).
Einige Leute mögen argumentieren, dass eine Konsole in beiden Fällen immer verfügbar sein wird, so dass eine Konsoleneingabe ausreicht. Problem ist jedoch, wenn die Java-App javaw.exe verwendet und eine Konsole nicht verfügbar ist. Daher brauche ich einen Weg, um festzustellen, ob ich beides tun kann.
Mein Problem besteht darin, festzustellen, ob die Umgebung, in der die Anwendung ausgeführt wird, entweder eine Konsole oder eine grafische Benutzeroberfläche unterstützt.
Ich weiß, dass eine statische Methode GraphicsEnvironment.isHeadless()
aber aus dem Java-doc existiert Ich denke, dass diese Methode nicht unterscheiden kann, wenn das O Grafik unterstützt, sondern eher, als wenn das O eine der E/A-Geräte unterstützen kann (Tastatur, Maus, Bildschirm).
Weiß jemand mehr darüber? Kann ich abrufen, ob das Betriebssystem die Konsolen- oder Grafikumgebung unterstützt?
Vielen Dank im Voraus.
See [Gibt es eine sichere, programmatische Art und Weise zu bestimmen, ob es sicher ist, ein Swing-Fenster zu öffnen?] (Http://stackoverflow.com/questions/5893236/is-there-a-safe-programmatic- Weg-zu-bestimmen-wenn-es-sicher-zu-öffnen-ein-Schwung-Wind) – devnull
@devnull danke für Ihre Antwort. Wie der andere Beitrag schon andeutet, wird die Methode isHeadless() die Aufgabe übernehmen. Ich muss die Java-Dokumentation dann falsch interpretiert haben. Allerdings werde ich versuchen, eine Unix-Maschine zu finden, um die App zu starten, und ich werde meine Ergebnisse hier zurück posten. – nikkatsa