public class JavaApplication3 {
/**
* @param args the command line arguments
*/
public void initAndShowGUI() {
// This method is invoked on the EDT thread
JFrame frame = new JFrame("Swing and JavaFX");
final JFXPanel fxPanel = new JFXPanel();
frame.add(fxPanel);
frame.setSize(300, 200);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Platform.runLater(new Runnable() {
@Override
public void run() {
initFX(fxPanel);
}
});
}
private void initFX(JFXPanel fxPanel) {
// This method is invoked on the JavaFX thread
Scene scene = createScene();
fxPanel.setScene(scene);
}
private Scene createScene() {
Group root = new Group();
Scene scene = new Scene(root, Color.ALICEBLUE);
WebView browser;
browser = new WebView();
//browser.setContextMenuEnabled(false);
browser.autosize();
WebEngine webEngine = browser.getEngine();
String Qlink = "https://www.google.ca";
webEngine.load(Qlink);
root.getChildren().add(browser);
return (scene);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
System.setProperty("http.proxyHost","10.10.6.61");
System.setProperty("http.proxyPort","6666");
System.setProperty("https.proxyHost","10.10.6.61");
System.setProperty("https.proxyPort","6666");
JavaApplication3 j = new JavaApplication3();
j.initAndShowGUI();
}
});
}
}
这个程序与oracle的示例代码相同,为90%。 无论是刷新页面两次还是等待一段时间,JVM都会崩溃。 我做错了什么,结果如此?请指出。 它很容易重现。我使用的是java7u22,jfxrt是jre默认包含的。 非常感谢你的帮助!
编辑: 我将在IDE上显示错误显示很长时间。如果你问,我还会提供核心转储日志文件。对不起语法可能会让你很难理解我。
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000005c2728e3, pid=812, tid=5280
#
# JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C [glass.dll+0x128e3]
#
# Core dump written. Default location: C:\Users\robin.ASIGRA\Documents\NetBeansProjects\JavaApplication3\hs_err_pid812.mdmp
#
# An error report file with more information is saved as:
# C:\Users\robin.ASIGRA\Documents\NetBeansProjects\JavaApplication3\hs_err_pid812.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
06 / 13-14更新
我的操作系统是窗口服务器R2 2008,java版本是7 我确实尝试将java版本更新为8,问题仍然存在。 此应用程序必须在java7环境中构建。 我发现它是Windows Server R2 2008上的bug java7,并且有一个解决方案。
Windows Server 2008 R2 SP1和Java 7u45(JavaFX 2.2.45)上会出现此问题。我已经解决了它启用桌面体验功能(在远程服务器上,转到管理工具 - >服务器管理器)。请注意,此功能也可以启用Windows Defender服务,Microsoft doc不会报告它。
完成此操作后,问题就解决了。
答案 0 :(得分:1)
更新
正如其问题更新中的原始海报所述,此问题特定于在Windows R2 2008服务器上使用旧版Java,该问题已在Java 8中作为RT-23456 Java crashes on Windows 2008 R2 trying to run Java FX demo 'Ensemble'的一部分进行了解决。< / p>
为我工作
我在Win 7,Java 8u20b11上运行了你的应用程序(代理设置被注释掉了),它对我有用。
您可以下载Java 8 development release以获取修复此问题的Java版本。如果你必须坚持使用Java 7(不是真的推荐),那么你可以应用问题更新中提到的解决方法。