如何禁用或绕过JavaFX中的硬件graphics加速(Prism)

OS:OSX Mountain Lion。

系统:Virtual BOX 4.2.6。

Java:1.7.0.40-ea-b34

我想为我的JAVAFX应用程序禁用硬件加速,因为我的系统(mac)没有硬件加速。 所以,当没有硬件加速,我正在执行我的JAVAFX应用程序的致命错误。 与“Prism引擎pipe道”有关的错误,当java尝试执行openGL原生库时发生。 所以我想禁用棱镜。

我看到有一些vm args控制棱镜行为,如.. Dprism.forceGPU = true;

有没有什么像上面禁用棱镜或OpenGL请求?

致命错误(openGl相关代码)

Stack: [0x000000016c8f9000,0x000000016c9f9000], sp=0x000000016c9f7f40, free space=1019k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [libobjc.A.dylib+0x639f] objc_msgSend_fixup+0x5f C [AppKit+0x28134c] -[NSOpenGLContext initWithFormat:shareContext:]+0xac C [libprism-es2.dylib+0x4e9f] createContext+0x1b3 C [libprism-es2.dylib+0x4729] Java_com_sun_prism_es2_gl_mac_MacGLFactory_nInitialize+0xa2 j com.sun.prism.es2.gl.mac.MacGLFactory.nInitialize([I)J+0 j com.sun.prism.es2.gl.mac.MacGLFactory.initialize(Ljava/lang/Class;Lcom/sun/prism/es2/gl/GLPixelFormat$Attributes;)Z+73 j com.sun.prism.es2.ES2Pipeline.<clinit>()V+54 

看看这个论坛: https : //forums.oracle.com/message/11018975

添加到你的Java执行:

 -Dprism.order=j2d 

这应该够了吧。

j2dgraphicspipe道在JavaFX 8中是不赞成使用的,所以最好使用软件pipe道: -Dprism.order=sw 。 要validation您实际使用它,您可以打开日志logging: -Dprism.verbose=true