2013-11-28 38 views
1

我想在javafx webview中打开网页。其投掷一个致命错误异常在JavaFx Web视图中打开网页时出错

错误是这 -

由Java运行时环境已经检测到致命错误:

EXCEPTION_ACCESS_VIOLATION(0000005)中的PC = 0x6e98299b,PID = 4116,TID = 4224

JRE版本:7.0_10-B18 的Java VM:爪哇的HotSpot(TM)客户机VM(23.6-B04混合模式下,共享的窗口86) 有问题的帧: V [jvm.dll的+ 0xb299b]

无法写入核心转储。 C:小型转储默认情况下不与更多信息的错误报告文件保存为的Windows

的客户端版本启用\的Documents and Settings \ Administrator的\我的文档\的NetBeansProjects \ NetCheck \ hs_err_pid4116.log

如果您想提交错误报告,请访问: http://bugreport.sun.com/bugreport/crash.jsp

上述错误的原因是什么,我正在使用以下代码。

import javax.swing.*; 
import java.awt.*; 
import javafx.application.Platform; 
import javafx.embed.swing.JFXPanel; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.web.WebEngine; 
import javafx.scene.web.WebView; 



public class Browser extends javax.swing.JFrame 
{ 

    JFXPanel fxpanel; 
    WebEngine eng; 
    public Browser() { 
    initComponents(); 
    setLayout(null); 
    fxpanel=new JFXPanel(); 
    add(fxpanel); 
    fxpanel.setBounds(50,50,700,500); 
    setBounds(0,0,1024,768); 

} 


private void initFx(final JFXPanel fxpanel) 

{ 
    try 
    { 
    Group group= new Group(); 
    Scene scene= new Scene(group); 
    fxpanel.setScene(scene);  
    WebView webview = new WebView(); 
    group.getChildren().add(webview); 
    webview.setMinSize(700,500); 
    webview.setMaxSize(700,500); 
    webview.setVisible(true); 
    eng= webview.getEngine(); 
    eng.setJavaScriptEnabled(true); 
    eng.load("http://www.google.com"); 
    } 
    catch(Exception ex) 
    { 
    ex.printStackTrace(); 
    } 
    } 

    public static void main(String args[]) 
    { 
    Browser b1= new Browser(); 
    b1.show(); 

    } 

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) 


    { 
    Platform.runLater(new Runnable() { 
     public void run() 
     { 
     initFx(fxpanel); 
    }} 
     ); 

    } 
+0

后甲骨文这个错误你可能会得到解决 –

回答

0

你需要更新你的JDK,你有一个很老的版本1.7.0u10(2012年12月)和最新的JDK 7的版本是1.7.0u45

请注意,WebViewJDK 7 contains some minor bugs已在JDK 8中修复,并且不太可能在JDK 7中修复。我注意到的一些错误是使用字体呈现,即Font Awesome和Ace Editor不适用于我以及在JDK 7

UPDATE

您演示正在JDK 1.7.0u40。你需要调用initFx在FX应用程序线程:

Platform.runLater(new Runnable() { 
     @Override 
     public void run() { 
      initFx(fxpanel); 
     } 
    }); 
+0

随着JDK 7的版本1.7.0u45,Webview是不是在所有 –

+0

工作在JDK 8 JDBC:ODBC支持不存在,什么是替代 –

+0

你演示正在为我工​​作,我已经更新了示例。我认为它也应该在u45工作。 –