实例化 Java AWT 对象会导致空应用程序在 macOS 上打开
Instantiating a Java AWT object causes empty application to open on macOS
当我从 java.awt
实例化一个对象时,程序会打开一个名为 "Java" 的新 macOS 应用程序,但没有 windows。
如何防止这种情况发生?
这是一个最小的例子:
import java.awt.Rectangle;
public class Main {
public static void main(String[] args) {
Rectangle rect = new Rectangle();
}
}
编译后运行以最规范的方式(javac Main.java; java Main
),Dock中出现如下图标:screenshot
我查过代码,违规的方法是Toolkit.loadLibraries()
(JDK 1.8.0_172-b11
).
我找到了基于 @MadProgrammer's 的解决方案。
答案是将 AWT 设置为无头模式。
执行程序时:
$ java -Djava.awt.headless=true Main
或以编程方式:
System.setProperty("java.awt.headless", "true");
当我从 java.awt
实例化一个对象时,程序会打开一个名为 "Java" 的新 macOS 应用程序,但没有 windows。
如何防止这种情况发生?
这是一个最小的例子:
import java.awt.Rectangle;
public class Main {
public static void main(String[] args) {
Rectangle rect = new Rectangle();
}
}
编译后运行以最规范的方式(javac Main.java; java Main
),Dock中出现如下图标:screenshot
我查过代码,违规的方法是Toolkit.loadLibraries()
(JDK 1.8.0_172-b11
).
我找到了基于 @MadProgrammer's
答案是将 AWT 设置为无头模式。
执行程序时:
$ java -Djava.awt.headless=true Main
或以编程方式:
System.setProperty("java.awt.headless", "true");