我已经安装了ubuntu 14.04.02 x64,oracle jdk 1.8.4,我尝试运行JavaFX8项目,但我在eclipse中收到此消息(但不是每次都收到):
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f69a19a4f78, pid=7035, tid=140090187572992
#
# JRE version: Java(TM) SE Runtime Environment (8.0_40-b25) (build 1.8.0_40-b25)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.40-b25 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V [libjvm.so+0x6c3f78] jni_invoke_nonstatic(JNIEnv_*, JavaValue*, _jobject*, JNICallType, _jmethodID*, JNI_ArgumentPusher*, Thread*)+0x38
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
#
--------------- T H R E A D ---------------
Current thread (0x00007f699c28a800): JavaThread "JavaFX Application Thread" [_thread_in_vm, id=7057, stack(0x00007f6949cde000,0x00007f6949ddf000)]
siginfo: si_signo: 11 (SIGSEGV), si_code: 128 (SI_KERNEL), si_addr: 0x0000000000000000
Registers:
RAX=0x00007f6949dd9b70, RBX=0x00007f6949dd9a80, RCX=0x0000000000000001, RDX=0x3b746e6576456e6f
RSP=0x00007f6949dd98d0, RBP=0x00007f6949dd9a50, RSI=0x00007f6949dd9ae0, RDI=0x00007f699c28a9f8
R8 =0x00007f699c1e3f28, R9 =0x00007f6949dd9a80, R10=0x0000000000000011, R11=0x00007f698d1fb000
R12=0x00007f699c28a800, R13=0x00007f699c1e3f28, R14=0x0000000000000001, R15=0x00007f699c28a9f8
RIP=0x00007f69a19a4f78, EFLAGS=0x0000000000010206, CSGSFS=0x0000000000000033, ERR=0x0000000000000000
TRAPNO=0x000000000000000d
Top of Stack: (sp=0x00007f6949dd98d0)
0x00007f6949dd98d0: 00007f6949dd9f30 00007f698cdf8768
0x00007f6949dd98e0: 00007f6949dd9930 00007f6949dd99b0
0x00007f6949dd98f0: 00007f6949dd9a80 00007f6949dd9ae0
0x00007f6949dd9900: 00007f699c28a9f8 00007f69a19c4810
0x00007f6949dd9910: 00007f6960011a60 00007f6960011ae0
0x00007f6949dd9920: 00007f6960011e48 00000000000003d8
0x00007f6949dd9930: 00007f69880d4f08 00000000d8954d60
0x00007f6949dd9940: 000000000000006f 000000000000000a
0x00007f6949dd9950: 00000000d8c35188 00007f6900000000
0x00007f6949dd9960: 0000000000000000 00007f6949dd9a20
0x00007f6949dd9970: 00007f699c217040 0000000100000140
0x00007f6949dd9980: 00007f69880d4f08 00007f6949dd9938
0x00007f6949dd9990: 00007f6949dd9979 0000000800000005
0x00007f6949dd99a0: 00007f69880d4f00 00007f699c28a800
0x00007f6949dd99b0: 00007f69a2220590 00007f69a2d03470
0x00007f6949dd99c0: 00000000d8954a78 00007f69880d4f08
0x00007f6949dd99d0: 0000000000000000 00007f699c28a800
0x00007f6949dd99e0: 00007f69880dee68 00007f699c28a800
0x00007f6949dd99f0: 00007f69880dee68 00007f699c28a800
0x00007f6949dd9a00: 00007f6949dd9a50 00007f69880dee68
0x00007f6949dd9a10: 00007f69880dee68 00007f69880dee68
0x00007f6949dd9a20: 00007f699c28a9f8 00007f6949dd9a80
0x00007f6949dd9a30: 00007f699c28a800 00007f6949dd9ac0
0x00007f6949dd9a40: 00007f699c1e3f28 00007f699c28a9f8
0x00007f6949dd9a50: 00007f6949dd9b40 00007f69a19a971f
0x00007f6949dd9a60: 00007f699c28a800 00007f697eedcfc4
0x00007f6949dd9a70: 00007f6949dd9b50 3b746e6576456e6f
0x00007f6949dd9a80: 00007f69a22211f0 00007f69a2d03470
0x00007f6949dd9a90: 000000009c217040 0000000000000063
0x00007f6949dd9aa0: 0000000000000000 0000003000000018
0x00007f6949dd9ab0: 00007f6949dd9c30 00007f6949dd9b70
0x00007f6949dd9ac0: 00007f699c28a800 0000000000000000
Instructions: (pc=0x00007f69a19a4f78)
0x00007f69a19a4f58: 00 00 48 85 d2 48 89 bd b0 fe ff ff 48 89 b5 a8
0x00007f69a19a4f68: fe ff ff 4c 89 8d a0 fe ff ff 0f 84 10 09 00 00
0x00007f69a19a4f78: 4c 8b 22 4d 85 e4 0f 84 04 09 00 00 48 8b 45 10
0x00007f69a19a4f88: 48 8b 98 38 01 00 00 48 83 7b 18 f7 0f 87 06 06
Register to memory mapping:
RAX=0x00007f6949dd9b70 is pointing into the stack for thread: 0x00007f699c28a800
RBX=0x00007f6949dd9a80 is pointing into the stack for thread: 0x00007f699c28a800
RCX=0x0000000000000001 is an unknown value
RDX=0x3b746e6576456e6f is an unknown value
RSP=0x00007f6949dd98d0 is pointing into the stack for thread: 0x00007f699c28a800
RBP=0x00007f6949dd9a50 is pointing into the stack for thread: 0x00007f699c28a800
RSI=0x00007f6949dd9ae0 is pointing into the stack for thread: 0x00007f699c28a800
RDI=0x00007f699c28a9f8 is an unknown value
R8 =0x00007f699c1e3f28 is an unknown value
R9 =0x00007f6949dd9a80 is pointing into the stack for thread: 0x00007f699c28a800
R10=0x0000000000000011 is an unknown value
R11=0x00007f698d1fb000 is at entry_point+32 in (nmethod*)0x00007f698d1fae90
R12=0x00007f699c28a800 is a thread
R13=0x00007f699c1e3f28 is an unknown value
R14=0x0000000000000001 is an unknown value
R15=0x00007f699c28a9f8 is an unknown value
Stack: [0x00007f6949cde000,0x00007f6949ddf000], sp=0x00007f6949dd98d0, free space=1006k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x6c3f78] jni_invoke_nonstatic(JNIEnv_*, JavaValue*, _jobject*, JNICallType, _jmethodID*, JNI_ArgumentPusher*, Thread*)+0x38
V [libjvm.so+0x6c871f] jni_CallVoidMethodV+0x10f
C [libglass.so+0x1b798] JNIEnv_::CallVoidMethod(_jobject*, _jmethodID*, ...)+0x98
C [libglass.so+0x19355] WindowContextBase::process_key(_GdkEventKey*)+0x225
C [libglass.so+0x22bf0] WindowContextBase::im_filter_keypress(_GdkEventKey*)+0x1f0
C [libglass.so+0x254d4] process_events(_GdkEvent*, void*)+0x204
C [libgdk-x11-2.0.so.0+0x591ec]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j com.sun.glass.ui.gtk.GtkApplication.enterNestedEventLoopImpl()V+0
j com.sun.glass.ui.gtk.GtkApplication._enterNestedEventLoop()Ljava/lang/Object;+15
j com.sun.glass.ui.Application.enterNestedEventLoop()Ljava/lang/Object;+14
j com.sun.glass.ui.EventLoop.enter()Ljava/lang/Object;+42
j com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(Ljava/lang/Object;)Ljava/lang/Object;+107
j javafx.stage.Stage.showAndWait()V+74
j javafx.scene.control.HeavyweightDialog.showAndWait()V+11
j javafx.scene.control.Dialog.showAndWait()Ljava/util/Optional;+41
j classes.LoginDialog.showLoginDialog()V+10
j controller.MainWindowController.buttAdministratorAction(Ljavafx/event/ActionEvent;)V+22
v ~StubRoutines::call_stub
j sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
j sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+100
J 856 C1 sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (10 bytes) @ 0x00007f698d0ed304 [0x00007f698d0ed200+0x104]
J 855 C1 java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (62 bytes) @ 0x00007f698d0ecd44 [0x00007f698d0ec960+0x3e4]
j sun.reflect.misc.Trampoline.invoke(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+7
j sun.reflect.GeneratedMethodAccessor1.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+40
J 856 C1 sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (10 bytes) @ 0x00007f698d0ed304 [0x00007f698d0ed200+0x104]
J 855 C1 java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (62 bytes) @ 0x00007f698d0ecd44 [0x00007f698d0ec960+0x3e4]
j sun.reflect.misc.MethodUtil.invoke(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+20
j javafx.fxml.FXMLLoader$MethodHandler.invoke([Ljava/lang/Object;)V+19
j javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(Ljavafx/event/Event;)V+12
j com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Ljavafx/event/Event;)V+51
J 1483 C1 com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Ljavafx/event/EventType;Ljavafx/event/Event;)Ljavafx/event/Event; (34 bytes) @ 0x00007f698d29fb94 [0x00007f698d29f640+0x554]
j com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Ljavafx/event/Event;)Ljavafx/event/Event;+8
j com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Ljavafx/event/Event;)Ljavafx/event/Event;+11
j com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Ljavafx/event/Event;Ljavafx/event/EventDispatchChain;)Ljavafx/event/Event;+29
J 1433 C1 com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Ljavafx/event/Event;)Ljavafx/event/Event; (101 bytes) @ 0x00007f698d288ec4 [0x00007f698d288d20+0x1a4]
j com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Ljavafx/event/Event;Ljavafx/event/EventDispatchChain;)Ljavafx/event/Event;+17
J 1433 C1 com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Ljavafx/event/Event;)Ljavafx/event/Event; (101 bytes) @ 0x00007f698d288ec4 [0x00007f698d288d20+0x1a4]
j com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Ljavafx/event/Event;Ljavafx/event/EventDispatchChain;)Ljavafx/event/Event;+17
J 1433 C1 com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Ljavafx/event/Event;)Ljavafx/event/Event; (101 bytes) @ 0x00007f698d288ec4 [0x00007f698d288d20+0x1a4]
j com.sun.javafx.event.EventUtil.fireEventImpl(Ljavafx/event/EventDispatchChain;Ljavafx/event/EventTarget;Ljavafx/event/Event;)Ljavafx/event/Event;+10
j com.sun.javafx.event.EventUtil.fireEvent(Ljavafx/event/EventTarget;Ljavafx/event/Event;)Ljavafx/event/Event;+37
j javafx.event.Event.fireEvent(Ljavafx/event/EventTarget;Ljavafx/event/Event;)V+30
j javafx.scene.Node.fireEvent(Ljavafx/event/Event;)V+86
j javafx.scene.control.Button.fire()V+15
j com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(Ljavafx/scene/input/MouseEvent;)V+23
j com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(Ljavafx/scene/input/MouseEvent;)V+83
j com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(Ljavafx/event/Event;)V+5
j com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Ljavafx/event/Event;)V+5
j com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Ljavafx/event/Event;)V+28
J 1483 C1 com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Ljavafx/event/EventType;Ljavafx/event/Event;)Ljavafx/event/Event; (34 bytes) @ 0x00007f698d29fb94 [0x00007f698d29f640+0x554]
j com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Ljavafx/event/Event;)Ljavafx/event/Event;+8
j com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Ljavafx/event/Event;)Ljavafx/event/Event;+11
j com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Ljavafx/event/Event;Ljavafx/event/EventDispatchChain;)Ljavafx/event/Event;+29
J 1433 C1 com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Ljavafx/event/Event;)Ljavafx/event/Event; (101 bytes) @ 0x00007f698d288ec4 [0x00007f698d288d20+0x1a4]
j com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Ljavafx/event/Event;Ljavafx/event/EventDispatchChain;)Ljavafx/event/Event;+17
J 1433 C1 com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Ljavafx/event/Event;)Ljavafx/event/Event; (101 bytes) @ 0x00007f698d288ec4 [0x00007f698d288d20+0x1a4]
j com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Ljavafx/event/Event;Ljavafx/event/EventDispatchChain;)Ljavafx/event/Event;+17
J 1433 C1 com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Ljavafx/event/Event;)Ljavafx/event/Event; (101 bytes) @ 0x00007f698d288ec4 [0x00007f698d288d20+0x1a4]
j com.sun.javafx.event.EventUtil.fireEventImpl(Ljavafx/event/EventDispatchChain;Ljavafx/event/EventTarget;Ljavafx/event/Event;)Ljavafx/event/Event;+10
j com.sun.javafx.event.EventUtil.fireEvent(Ljavafx/event/EventTarget;Ljavafx/event/Event;)Ljavafx/event/Event;+46
j javafx.event.Event.fireEvent(Ljavafx/event/EventTarget;Ljavafx/event/Event;)V+30
j javafx.scene.Scene$MouseHandler.process(Ljavafx/scene/input/MouseEvent;Z)V+491
j javafx.scene.Scene$MouseHandler.access$1500(Ljavafx/scene/Scene$MouseHandler;Ljavafx/scene/input/MouseEvent;Z)V+3
j javafx.scene.Scene.impl_processMouseEvent(Ljavafx/scene/input/MouseEvent;)V+6
j javafx.scene.Scene$ScenePeerListener.mouseEvent(Ljavafx/event/EventType;DDDDLjavafx/scene/input/MouseButton;ZZZZZZZZZ)V+46
j com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run()Ljava/lang/Void;+438
j com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run()Ljava/lang/Object;+1
v ~StubRoutines::call_stub
j java.security.AccessController.doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;+0
j com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$350()Ljava/lang/Void;+11
j com.sun.javafx.tk.quantum.GlassViewEventHandler$$Lambda$208.get()Ljava/lang/Object;+4
j com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Ljava/util/function/Supplier;)Ljava/lang/Object;+18
j com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Lcom/sun/glass/ui/View;JIIIIIIIZZ)V+103
j com.sun.glass.ui.View.handleMouseEvent(JIIIIIIIZZ)V+30
j com.sun.glass.ui.View.notifyMouse(IIIIIIIZZ)V+181
v ~StubRoutines::call_stub
j com.sun.glass.ui.gtk.GtkApplication._runLoop(Ljava/lang/Runnable;Z)V+0
j com.sun.glass.ui.gtk.GtkApplication.lambda$null$48(Ljava/lang/Runnable;Z)V+7
j com.sun.glass.ui.gtk.GtkApplication$$Lambda$41.run()V+12
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub
..当我的应用程序运行此代码时:
ChangeRoot changeRoot = new ChangeRoot(Main.mainStage, CONSTANTS.ROOT_EMPLOYEE_WINDOW.string, "Employee panel", true);
changeRoot.doFadingTransition(borderPane, CONSTANTS.FADE_OUT.value, CONSTANTS.FADE_IN.value);
..
public class ChangeRoot{
private boolean bChangeStageSize = true;
private boolean bFadeStage = true;
private String sNewTitle;
private boolean bResizable;
private Controller controller;
private Stage primaryStage;
private FXMLLoader loader;
private Parent root;
public ChangeRoot(Stage primaryStage, String sRoot, String sNewTitle, boolean bResizable){
this.primaryStage = primaryStage;
this.bResizable = bResizable;
this.sNewTitle = sNewTitle;
loader = new FXMLLoader(getClass().getResource(sRoot));
try{
root = loader.load();
controller = loader.getController();
}catch(IOException exception){
ExceptionDialog exceptionDialog = new ExceptionDialog("Error while loading fxml file", exception);
exceptionDialog.showAndWait();
}
}
/****************************PUBLIC METHODS*******************************/
public Controller getController(){
return controller;
}
public void doFadingTransition(Pane actualPane, double fadeOutMillis, double fadeInMillis){
actualPane.setDisable(true);
//fading out
final DoubleProperty stageOpacity = Main.mainStage.opacityProperty();
final DoubleProperty oldPaneOpacity = actualPane.opacityProperty();
if(bFadeStage == true)
oldPaneOpacity.bindBidirectional(stageOpacity);
Timeline fadeOut = new Timeline(
new KeyFrame(Duration.ZERO, new KeyValue(oldPaneOpacity, 1.0)),
new KeyFrame(new Duration(fadeOutMillis), e -> {
if(bResizable == true)
Main.mainStage.setResizable(true);
else
Main.mainStage.setResizable(false);
if(bFadeStage == true)
oldPaneOpacity.unbindBidirectional(stageOpacity);
changeRootAndWindow();
fadeIn(fadeInMillis);
},
new KeyValue(oldPaneOpacity, 0.0)
));
fadeOut.play();
}
public final void changeRoot(){
changeRootAndWindow();
}
/****************************PRIVATE METHODS*******************************/
private final void changeRootAndWindow(){ //it will do depending what was put to the constructor
if(primaryStage.isMaximized() == true){
primaryStage.setMaximized(false);
}
primaryStage.getScene().setRoot(root);
primaryStage.setTitle(sNewTitle);
if(bChangeStageSize == true){
Main.mainStage.setHeight(controller.getMainPane().getPrefHeight() + 38);
Main.mainStage.setWidth(controller.getMainPane().getPrefWidth() +16);
}
}
private void fadeIn(double fadeInMillis){
if(controller == null){
ExceptionDialog exceptionDialog = new ExceptionDialog("insert controller class", new Exception());
exceptionDialog.showAndWait();
}
final DoubleProperty newPaneOpacity = controller.getMainPane().opacityProperty();
final DoubleProperty stageOpacity = Main.mainStage.opacityProperty();
if(bFadeStage == true)
newPaneOpacity.bindBidirectional(stageOpacity);
Timeline fadeIn = new Timeline(
new KeyFrame(Duration.ZERO, new KeyValue(newPaneOpacity, 0.0)),
new KeyFrame(new Duration(fadeInMillis), actionEvent -> {
if(bFadeStage == true)
newPaneOpacity.unbindBidirectional(stageOpacity);
},
new KeyValue(newPaneOpacity, 1.0)
));
fadeIn.play();
}
}
============================================================
这不是每次都发生,但大多数情况下,通常没有问题后,我启动eclipse和运行我的程序第一次。
我在互联网上寻找答案,并尝试了这个:
sudo unlink /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1
还有这个:
I've tried adding the the below line to the end of eclipse.ini, but Eclipse can't start at all:
org.eclipse.swt.browser.DefaultType=mozilla
I think there is some typo error, the line should be:
-Dorg.eclipse.swt.browser.DefaultType=mozilla
and this worked for me.
但是什么都帮不上忙...我不知道该怎么办。
**EDIT:**在Windows上运行相同的代码时没有问题。
EDIT2我发现,当我像这样使用静态变量时:
Stage primaryStage = Main.primaryStage;
primaryStage.setMaximized(true);
这会导致错误。
3条答案
按热度按时间wribegjk1#
更新
我已经把bug报告填到javafx jira中了。链接是这个(link to the bug)。
我试着在我的笔记本电脑上重现我的错误(mac和oracle jdk 1.8.0_45),也试着在虚拟机中使用ubuntu(ubuntu 14.04和相同版本的jdk),但错误没有发生。
上一次在聊天室,你说你在eclipse中使用open jdk时遇到了问题。那么,你能试着使用open jdk但从命令提示符运行应用程序吗?你可以试着使用这个命令运行它(假设你已经正确配置了jdk)。
看起来像是javafx link to duplicate bug的一个bug。尽管它被标记为这个问题link to original bug的副本。
基于问题的状态,bug已经被解决,所以也许你可以尝试更新你的jdk到最新版本,看看问题是否仍然发生。
olhwl3o22#
当我展示的TextInputDialog(在展示主阶段之前)有一个CSS样式表,它使用@font-face声明了一个我已经删除的字体文件时,这个问题就出现了。通过删除这些过时的声明,这个问题就不再出现了。
有趣的是,这个问题只发生在我用键盘按回车键的时候。用鼠标接受对话框并没有导致这个问题。
(JavaFX 18)
另外,我以前也遇到过这个bug,但次数很少。我修复的这个问题导致了100%的错误。还有一个“javafx.css.cssParser reportException警告:请报告java.lang.NullPointerException at:“错误,这使我能够通过逐个删除每个样式表来跟踪它。
oymdgrw73#
首先,当您查找JavaFX问题时,设置SWT选项并没有帮助。SWT仅在Eclipse内部使用。JavaFX应用程序作为一个新进程启动,不会注意到SWT被同一台计算机上的另一个Java应用程序使用。
从堆栈跟踪来看,本地事件循环(
GtkApplication.enterNestedEventLoopImpl
)似乎检测到了一个“按键”事件(process_events
-〉WindowContextBase::process_key
)。JavaFX端似乎有一个事件处理程序,因为代码接下来尝试调用void
方法(JNIEnv_::CallVoidMethod
),然后崩溃。我不确定
static
字段在这里会有什么影响;按键也不罕见,所以这应该是经过良好测试的代码。此外,JavaFX似乎使用了Gtk 2(
libgdk-x11-2.0.so.0
),这意味着Gtk 3的主题在SWT和Eclipse中会导致无休止的问题。但是,也许您或其他人为桌面选择了一个比Gtk 2默认使用的主题“更好”的主题。我建议:1.尝试将主题重置为默认主题
1.为您的Linux安装最新补丁程序
1.创建一个只包含问题的精简版代码。
1.尝试运行JavaFX的“Hello World”应用程序和一些演示。
1.如果失败,请尝试打开OpenJDK的错误:https://bugs.openjdk.java.net/secure/Dashboard.jspa