当前位置: 首页 > 知识库问答 >
问题:

在JavaFx web视图中打开网页时出错

袁华清
2023-03-14

我正在尝试在javafx webview中打开一个网页。引发致命错误异常

错误是这样的-

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

pc=0x6e98299b,pid=4116,tid=4224时出现异常\u访问\u冲突(0xc0000005)

JRE版本:7.0_10-b18JavaVM:JavaHotSpot(TM)Client VM(23.6-b04混合模式,共享windows-x86)问题帧:V[jvm.dll0xb299b]

无法写入核心转储。默认情况下,在客户端版本的Windows上不启用微型转储

包含更多信息的错误报告文件保存为:C:\Documents and Settings\Administrator\My Documents\NetBeansProject\NetCheck\hs\u err\u pid4116。日志

如果要提交错误报告,请访问: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);
     }}
       );

  }

共有1个答案

王才
2023-03-14

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

请注意,JDK 7中的WebView包含一些小错误,这些错误在JDK 8中已修复,在JDK 7中不太可能修复。我注意到的一些bug与字体渲染有关,例如,font Awesome和Ace Editor在JDK 7中对我的工作不太好。

更新

您的演示正在使用JDK 1.7.0u40。您需要在fx应用程序线程中调用initFx:

  Platform.runLater(new Runnable() {
        @Override
        public void run() {
            initFx(fxpanel);
        }
  });
 类似资料:
  • 我刚下载了Java和JMeter,当我尝试打开。jmx文件,我一直收到以下错误消息: “从以下位置加载XML时出现问题:'C:\Users\blank\file_name.jmx'。原因:CannotResolveClassException:com.tag.jmeter.ext.config.PropertyReader” 我不确定会是什么问题。我安装了插件管理器,并试图打开文件后,这确实提示我

  • 我有一个这样的视图集来列出用户的数据: 我想打开分页,就像模型视图集的默认分页一样: 官方文档说: 只有在使用通用视图或视图集时,分页才会自动执行 …但我的结果集根本没有分页。如何为其分页?

  • 本文向大家介绍js实现网页图片延时加载 提升网页打开速度,包括了js实现网页图片延时加载 提升网页打开速度的使用技巧和注意事项,需要的朋友参考一下 提升网页加载速度的方法有很多种,用 jquery.lazyload.js 实现图片异步延迟加载,对于页面包含图片较多的网站来说,会是个不错的提升网页打开速度的方法。代码君网站栏目页列表左侧,在PC端预览时能看到一个文章略缩图展示模块,一定程度上会延长网

  • 本文向大家介绍如何在网页中打开腾讯QQ?相关面试题,主要包含被问及如何在网页中打开腾讯QQ?时的应答技巧和注意事项,需要的朋友参考一下 window.open('http://wpa.qq.com/msgrd?v=3&uin=1186154608&site=qq&menu=yes')

  • 所以我正在尝试构建一个应用程序,它将从服务器加载一个页面,并且可以选择上传录音,我找到了一种方法,如何让它在android浏览器中工作,但我无法让它通过webview工作。所以如果我在浏览器中加载此页面 http://www.francesco.iovine.name/w3c/mediacapture/ 并单击使用录音机捕获音频下的浏览按钮,它会在Audio Recorder中打开,这很完美,但我

  • 我使用CXF Servlet公开了一些REST服务。然而,我遇到了这样的问题:一个类需要一个延迟加载的集合(不止一个列表)。我得到了这个: 我的cxf配置相当简单: 如何实现“在视图中打开会话”模式,以便在 Jackson 序列化对象时我的Hibernate会话可用?