【发布时间】:2018-04-10 21:21:44
【问题描述】:
您好,我正在处理一个小组项目,代码可以在我队友的 PC 上运行,但我一直遇到 MacOS 特定的错误。而这一次我似乎被困住了(谷歌无法轻易找到答案)。
在a previous post 中,我发现我需要“-Djava.awt.headless=true”作为虚拟机设置才能正确运行我的模拟。现在,当我尝试在一些 JFrame 中生成时,由于那个 VM 标志,它们都会遇到一个可爱的“java.awt.HeadlessException”异常。
努力实现
我也希望能够在我的 MacBook 上生成这些 JFrame。
问题
我需要 -Djava.awt.headless 同时为真和假,我的程序才能在 Mac 上正常运行。如果我正确理解了我的问题,则意味着我手上有一个大问题。
编辑:在我的 Macbook 上的虚拟机中运行它可以让我正确运行项目。这远非理想的解决方案。我仍在寻找解决这个晦涩问题的方法。
我尝试了什么
- 没有使用 VM 选项运行:出现previous post 中描述的问题。因此,这不是一个可行的选择
-
使用 VM 选项运行:这会在创建 JFrame 时引发
-Djava.awt.headless。
【问题讨论】:
-
“我需要 -Djava.awt.headless 同时为真和假,我的程序才能正常运行” 为什么需要
false状态?你说它适用于Windows。如果两者都需要true和false,为什么它不会显示相同的问题? -
真正的声明需要在 Mac 上使用缓冲图像(请参阅我链接的上一篇文章)。但要生成这些 JPanel,无头模式不允许为真。编辑:所以 Windows 队友不需要有 VM 设置
-Djava.awt.headless=true所以他们确实可以产生 JPanel。 -
你有什么版本的 MacOS 和 Java?