【问题标题】:How to enable/allow java to run in a CefSharp application如何启用/允许 java 在 CefSharp 应用程序中运行
【发布时间】:2014-10-11 15:37:19
【问题描述】:

我们正在制作一个 Web 浏览器来试验 Oracle 的 ADT/Forms 技术。它所需要做的就是访问网址并运行 Java 小程序。

我正在使用(至少尝试)CefSharp3(来自https://github.com/cefsharp/CefSharp 的新克隆)。

我为此创建了一个 WPF 项目,让它工作(我可以导航到 Google、here、Oracle 等)但是,当我导航到我们的 Java 小程序时,我似乎只得到一个空白屏幕。

我已经设置了浏览器属性

  • “JavaDisabled”
  • “插件已禁用”
  • “WebSecurityDisabled”

(抓住稻草!)适当地,我仍然只看到一个空白屏幕。

我想知道是否该应用程序没有对 JRE 的权限?也许 JRE 需要包含在项目中?

这是 Debug 文件的结果(在只进入 Java 小程序的全新运行之后)

[1011/121439:WARNING:resource_bundle.cc(280)] locale_file_path.empty()
[1011/121439:WARNING:resource_bundle.cc(280)] locale_file_path.empty()
[1011/121439:WARNING:resource_bundle.cc(280)] locale_file_path.empty()
[1011/121439:ERROR:renderer_main.cc(226)] Running without renderer sandbox
[1011/121441:WARNING:content_browser_client.cc(480)] No browser info matching view process id 3 and routing id 2
[1011/121441:WARNING:content_browser_client.cc(480)] No browser info matching view process id 3 and routing id 2
[1011/121441:WARNING:content_browser_client.cc(480)] No browser info matching view process id 3 and routing id 2
[1011/121441:WARNING:resource_bundle.cc(280)] locale_file_path.empty()
[1011/121441:WARNING:content_browser_client.cc(480)] No browser info matching view process id 3 and routing id 2
[1011/121441:WARNING:content_browser_client.cc(480)] No browser info matching view process id 3 and routing id 2
[1011/121441:WARNING:content_browser_client.cc(480)] No browser info matching view process id 3 and routing id 2

Java 小程序在 Firefox、Chrome、IE 和 Chromium(带有 WinForms)中运行没有问题。可能只是 WPF 和 Java 不兼容。

这里有一些代码! -- 不多,但是用这个框架也不需要太多 -- 印象深刻。

public partial class MainWindow : Window
{
    public MainWindow() {

        InitializeCef();
        InitializeComponent();
        SetBrowserSettings();

        ((IWebBrowser)webBrowser).Load("URL_To_Java_Applet");
    }

    private void InitializeCef() {
        var settings = new CefSharp.CefSettings()
        {
            PackLoadingDisabled = true
        };
        settings.IgnoreCertificateErrors = true; // could be preventing the JRE?
        Cef.Initialize(settings);
    }

    private void SetBrowserSettings() {
        BrowserSettings settings = new BrowserSettings();
        settings.JavaDisabled = false;
        settings.PluginsDisabled = false;
        settings.WebSecurityDisabled = true; // desperate attempt to allow JRE to run!
        webBrowser.BrowserSettings = settings;
    }
}

【问题讨论】:

  • 什么 CefSharp 版本? debug.log 中的任何错误?它是什么类型的 url,本地文件或 http,如果它是本地文件,您是否尝试将其上传到网络并从那里运行? google.com 网址可以正常加载吗? DevTools 中的任何错误?
  • @CzarekTomczak 好问题! ——我应该预料到他们。我将使用您正在寻找的信息更新我的问题。
  • locale_file_path.empty() 警告 - 看起来您缺少一些二进制文件。 locales/ 目录和 .pak 文件是否位于可执行文件旁边?

标签: c# wpf chromium-embedded cefsharp


【解决方案1】:

看来你是对的……

可能只是 WPF 和 Java 不兼容。

尝试使用 WinForms,而不是使用前景不佳的 WPF(注意 WPF 在 OSR 模式下运行)

看到这个CEF forum thread

更新:我尝试使用 CefSharp.Winforms|Wpf.Example 的 http://java.com/en/download/installed8.jsp 和 Win32 构建 - 它们都可以在 JRE 7.67 x86 上正常工作。当然,x64 示例不起作用,因为我的 PC 上没有 x64 JRE。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 2011-11-08
    • 2014-03-27
    • 2012-10-26
    • 1970-01-01
    • 2022-10-05
    • 2017-12-03
    相关资源
    最近更新 更多