如何检测图形界面是否受支持?
2022-09-01 18:54:22
我需要我的Java程序有两种显示模式:GUI界面和命令行界面。如果我在Windows,OS X或其他图形环境中运行它,我应该得到GUI界面,但是如果我通过SSH运行它,我应该得到命令行界面。
如何检测是否可以显示 GUI 或是否应使用命令行界面?
我需要我的Java程序有两种显示模式:GUI界面和命令行界面。如果我在Windows,OS X或其他图形环境中运行它,我应该得到GUI界面,但是如果我通过SSH运行它,我应该得到命令行界面。
如何检测是否可以显示 GUI 或是否应使用命令行界面?
您实际上有两个问题:
1)检查您是否在无头环境(无图形)中运行。检查此方法:
if (GraphicsEnvironment.isHeadless()) {
// non gui mode
} else {
// gui mode
}
2)检查您正在哪个操作系统下运行:
System.getProperty("os.name")
但是,第二 (2) 个问题将返回相同的名称,即使您在无外设环境中操作也是如此。
dacwe和vitaut都是对的。我只想添加一个建议。在设计应用程序时,应使用 MVC(模型-视图-控制器)模式。因此,如果它在UI模式下运行,则使用UIView,否则使用控制台视图。
Dacwe向您推荐如何自动决定使用哪种模式。由于Java是跨平台语言,我认为操作系统的名称与你无关。系统具有图形环境的事实更相关,因此请使用.GraphicsEnvironment.isHeadless()
System.console()
将帮助您创建外壳控制的应用程序。