背景:我使用基于命令行的用户界面来使用(=主要是测试)实用程序类。当我使用NetBeans IDE时,我使用'Eric's console',它可以从NetBeans内启用命令行I/o。
问题:我想检查一个类是否已经从NetBeans IDE内运行。这是可能的,如果是,如何实现这一点?
检查System.getProperty("user.dir")
,这是应用程序运行的地方。
您可以使用System.console()
来检查它是否在Netbeans上运行。如果应用程序运行在Netbeans上,System.console()
将返回null
,但如果应用程序运行在控制台,它将返回控制台对象。
我们可以这样写:
if(System.console() == null){
System.out.println("This Application is running on Netbeans");
} else {
System.out.println("This Application is running on Console");
}
唯一可靠的方法是通过传递一个特殊的参数或一个系统属性来显式地告诉你的程序,然后你的代码将据此进行操作。
这是不可能的,除非您添加一个特定的命令行参数来指示程序是从NetBeans启动的。