我曾经多次使用前者 (-Djava.awt.headless=true
),以防止某些使用JRE中的某些图形方法的应用程序出现臭名昭著的“找不到 DISPLAY”错误。
但是自那以后,我也了解到第二种方法的存在。尽管我花费了数小时的时间搜索,但我无法找到两者之间的区别。
更糟糕的是,我并不是GUI专家...那么,它们之间有实际的区别吗?什么样的代码适用于其中一种而不适用于另一种,或者需要同时使用两种等等?
java.awt.headlesslib
是2001年为响应bug JDK-4407772而添加的临时解决方案的一部分。
如果您下载openjdk6、openjdk7或openjdk8的源代码,并在所有源文件中搜索java.awt.headlesslib
,您将看不到任何结果。
因此,设置java.awt.headlesslib
的效果为零,而设置java.awt.headless
的效果是激活无头模式。