【发布时间】:2013-05-12 17:01:25
【问题描述】:
我有一个应用程序需要用户输入密码。
我想要做的是从控制台读取密码(如果操作系统支持一个,例如 unix)或显示一个 JOptionPane 并要求用户输入他的密码(如果操作系统支持图形界面,例如 windows)。
有些人可能会争辩说,在上述两种情况下,控制台总是可用的,因此控制台输入就足够了。但问题是如果 Java 应用程序使用 javaw.exe 启动,那么控制台不可用。因此,我需要一种方法来确定我是否可以做任何一种情况。
我的问题是如何确定运行应用程序的环境是否支持控制台或图形界面。
我知道存在静态方法
GraphicsEnvironment.isHeadless()
但从 Java 文档中,我认为这种方法无法区分操作系统是否支持图形,而是操作系统是否支持 I/O 设备之一(键盘、鼠标、屏幕)。
有人知道更多吗?如果操作系统支持控制台或图形环境,我可以检索吗?
提前致谢。
【问题讨论】:
-
@devnull 谢谢你的回答。所以实际上,正如另一篇文章所暗示的那样, isHeadless() 方法将完成这项工作。那我一定是误解了 Java 文档。但是,我会尝试找到一台 unix 机器来运行该应用程序,然后我会将我的发现发回这里。
标签: java swing awt console-application