我们正在制作一个 Web 浏览器来试验 Oracle 的 ADT/Forms 技术。它所需要做的就是访问该 Web 地址并运行 Java 小程序。
我正在使用(至少尝试)CefSharp3(来自https://github.com/cefsharp/CefSharp的新克隆)。
我为此创建了一个 WPF 项目,让它工作(我可以导航到 Google、here、Oracle 等)但是,当我导航到我们的 Java 小程序时,我似乎只得到一个空白屏幕。
我设置了浏览器属性
- “Java禁用”
- “插件禁用”
- “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;
}
}