我有一个GUI程序,默认情况下通过javaw.exe
使用Launch4j创建的启动包装器执行。
也可以从命令行执行该程序,然后将输出打印到控制台。
如何检测控制台是否可见,因此我通过System.out.println()
输出的文字是否可见?
根据我的理解,这取决于程序是通过Javaw / wrapper启动还是直接通过java -jar myprog.jar
启动。有没有办法区分开始方法和程序?
答案 0 :(得分:3)
如果System.console()
返回null
,则没有控制台,当您使用javaw
而不是java
启动该计划时会发生这种情况。例如:
import javax.swing.JOptionPane;
public class Example {
public static void main(String[] args) {
if (System.console() != null) {
System.out.println("Hello on the console");
} else {
JOptionPane.showMessageDialog(null, "Hello, there's no console");
}
}
}
尝试对此进行编译,然后使用java Example
或javaw Example
启动它。
答案 1 :(得分:-1)
$ 0是启动最后一个命令的程序 - 在shell中。