Mam aplikację, która wymaga wprowadzenia danych przez użytkownika dla hasła.Jak ustalić, czy GraphicsEnvironment istnieje
Co chcę zrobić, to albo odczytać hasło z konsoli (jeśli system obsługuje jeden np. Unix) lub wyświetlić JOptionPane i poprosić użytkownika o podanie hasła (jeśli system operacyjny obsługuje interfejs graficzny np. Windows).
Niektórzy ludzie mogą twierdzić, że konsola będzie zawsze dostępna w obu powyższych przypadkach, więc wejście konsoli będzie wystarczające. Ale problem polega na tym, że aplikacja Java zaczyna używać javaw.exe, a wtedy konsola nie jest dostępna. Tak więc potrzebuję sposobu, aby ustalić, czy mogę zrobić w obu przypadkach.
Mój problem polega na określeniu, czy środowisko, w którym działa aplikacja, obsługuje konsolę lub interfejs graficzny.
wiem, że metoda statyczna istnieje GraphicsEnvironment.isHeadless()
ale z doc Java myślę, że ta metoda nie może rozróżnić, czy system operacyjny obsługuje grafikę, ale zamiast, czy system operacyjny może obsługiwać jedno z urządzeń I/O (klawiatury, mysz, ekran).
Czy ktoś wie o tym więcej? Czy mogę odzyskać, jeśli system operacyjny obsługuje środowisko konsoli lub grafiki?
Z góry dziękuję.
See [Czy istnieje bezpieczny sposób programowy, aby ustalić, czy jest to bezpieczne, aby otworzyć okno Swing?] (Http://stackoverflow.com/questions/5893236/is-there-a-safe-programmatic- sposób-by-określić-jeśli-to-by-otworzyć-a-swing-wiatr) – devnull
@devnull dziękuję za odpowiedź. Tak więc, jak sugeruje inny post, metoda isHeadless() wykona zadanie. Musiałem wtedy źle zinterpretować dokumentację Java. Jednak spróbuję znaleźć maszynę unix do uruchomienia aplikacji, a ja opublikuję moje wyniki tutaj. – nikkatsa