JavaFX-JFXpanel错误?

时间:2014-06-13 18:47:13

标签: java javafx

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不会报告它。

完成此操作后,问题就解决了。

1 个答案:

答案 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(不是真的推荐),那么你可以应用问题更新中提到的解决方法。