我一直在尝试在虚拟化OS X安装中运行一个简单的JavaFX应用程序,但没有成功.在OS X主机系统上本机启动时,一切都按预期工作.
在我的研究之后,其他人也偶然发现了这个问题,但是没有一个建议的解决方案似乎有效:
到目前为止,我最好的方法是提示Java VM用PRISM软件渲染引擎替换PRISM硬件3D渲染引擎(通过使用-Dprism.order=sw,请参阅此问题).
使用硬件渲染引擎时,JafaFX应用程序崩溃.使用软件渲染引擎时,JavaFX应用程序启动正常,但根本不显示任何UI元素.
我正在使用JavaFX"Hello World"应用程序,它由IntelliJ IDEA在选择"New Project ..." - >"Java FX Application"时生成,再加上一个简单的文本标签(参见下面的代码).
要从命令行运行JavaFX应用程序,我正在调用:
java -Dprism.order=sw -jar path/to/JavaFXApp.jar
Run Code Online (Sandbox Code Playgroud)
JVM记录到命令行的唯一错误(即使在详细模式下)是
CGLCreateContext error: 10002
Run Code Online (Sandbox Code Playgroud)
在主机系统上成功运行时,不会记录此错误.
Main.java:
package sample;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public …Run Code Online (Sandbox Code Playgroud)