JavaFX Crashing / Hanging on Windows 8

时间:2015-09-01 22:18:26

标签: java javafx windows-8.1

I am seeing serious issues trying to run JavaFX apps on Windows 8 - looking for any input. As it stands, JavaFX appears to be useless on Windows 8...

Consistently, when I try to launch a particular stage, via stage.show() - the JavaFX Application Thread silently crashes. No logs, no stack trace, nothing. Just a completely hung GUI, and the thread is gone.

In another example, if I try to launch a Popup instance, the JavaFX thread hangs:

Thread [JavaFX Application Thread] (Suspended)  
Unsafe.park(boolean, long) line: not available [native method]  
LockSupport.park(Object) line: 175  
ReentrantLock$NonfairSync(AbstractQueuedSynchronizer).parkAndCheckInterrupt() line: 836 
ReentrantLock$NonfairSync(AbstractQueuedSynchronizer).acquireQueued(AbstractQueuedSynchronizer$Node, int) line: 870 
ReentrantLock$NonfairSync(AbstractQueuedSynchronizer).acquire(int) line: 1199   
ReentrantLock$NonfairSync.lock() line: 209  
ReentrantLock.lock() line: 285  
QuantumToolkit.runWithRenderLock(Supplier<T>) line: 405 
GlassViewEventHandler$ViewEventNotification.run() line: 781 
GlassViewEventHandler$ViewEventNotification.run() line: 749 
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]    
GlassViewEventHandler.lambda$handleViewEvent$369() line: 828    
107533352.get() line: not available 
QuantumToolkit.runWithoutRenderLock(Supplier<T>) line: 389  
GlassViewEventHandler.handleViewEvent(View, long, int) line: 827    
WinView(View).handleViewEvent(long, int) line: 539  
WinView(View).notifyResize(int, int) line: 875  
WinWindow._setBounds(long, int, int, boolean, boolean, int, int, int, int, float, float) line: not available [native method]    
WinWindow(Window).setBounds(int, int, boolean, boolean, int, int, int, int, float, float) line: 572 
WindowStage.setBounds(float, float, boolean, boolean, float, float, float, float, float, float) line: 318   
Window$TKBoundsConfigurator.apply() line: 1274  
Window$TKBoundsConfigurator.pulse() line: 1290  
Toolkit.lambda$runPulse$31(TKPulseListener) line: 348   
1678236021.run() line: not available    
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]    
QuantumToolkit(Toolkit).runPulse(TKPulseListener, AccessControlContext) line: 347   
QuantumToolkit(Toolkit).firePulse() line: 371   
QuantumToolkit.pulse(boolean) line: 510 
QuantumToolkit.pulse() line: 490    
QuantumToolkit.lambda$runToolkit$405() line: 319    
1381382387.run() line: not available    
InvokeLaterDispatcher$Future.run() line: 95 
WinApplication._runLoop(Runnable) line: not available [native method]   
WinApplication.lambda$null$149(int, Runnable) line: 191 
1750905143.run() line: not available    
Thread.run() line: 745  

Any thoughts? Or is JavaFX still, really this bad? Now that they closed out their bug tracker, and moved things (without a redirect) into the openjdk bug tracker, one can no longer even report issues to the JavaFX team. Seems to be a sad state of affairs.

I have tried this both with the intel built-in graphics, and the nvidia graphics - in case it was a specific acceleration issue, but the behavior is identical.

This code all works fine on Linux, FYI.

edit I've discovered that this (undocumented) flag helps:

-Dprism.order=sw

This apparently disables hardware rendering.

0 个答案:

没有答案