Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java eclipse中JCEf未在MAC上启动_Java_Eclipse_Macos_Chromium Embedded - Fatal编程技术网

Java eclipse中JCEf未在MAC上启动

Java eclipse中JCEf未在MAC上启动,java,eclipse,macos,chromium-embedded,Java,Eclipse,Macos,Chromium Embedded,我已经用以下版本为MAC构建了jcef MAC 10.13.4 代码9.3 java 1.8.0_171和1.8.0_191都尝试过 JCEF是根据指令构建的 面向Java开发人员的Eclipse IDE Luna服务发行版1(4.4.1) 我创建了一个eclipse项目并导入了所有JAR,复制了项目中的发布文件夹,然后我尝试运行以下MainFrame.java示例 package jcefdemo; import java.awt.BorderLayout; import java.awt.

我已经用以下版本为MAC构建了jcef MAC 10.13.4

代码9.3

java 1.8.0_171和1.8.0_191都尝试过

JCEF是根据指令构建的

面向Java开发人员的Eclipse IDE Luna服务发行版1(4.4.1)

我创建了一个eclipse项目并导入了所有JAR,复制了项目中的发布文件夹,然后我尝试运行以下MainFrame.java示例

package jcefdemo;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JTextField;

import org.cef.CefApp;
import org.cef.CefApp.CefAppState;
import org.cef.CefClient;
import org.cef.CefSettings;
import org.cef.OS;
import org.cef.browser.CefBrowser;
import org.cef.handler.CefAppHandlerAdapter;

import java.lang.reflect.Field;


public class MainFrame extends JFrame {
    private static final long serialVersionUID = -5570653778104813836L;
    private final JTextField address_;
    private final CefApp cefApp_;
    private final CefClient client_;
    private final CefBrowser browser_;
    private final Component browerUI_;


    private MainFrame(String startURL, boolean useOSR, boolean isTransparent) {
        CefApp.addAppHandler(new CefAppHandlerAdapter(null) {
            @Override
            public void stateHasChanged(org.cef.CefApp.CefAppState state) {
                if (state == CefAppState.TERMINATED) System.exit(0);
            }
        });
        CefSettings settings = new CefSettings();
        settings.windowless_rendering_enabled = useOSR;
        cefApp_ = CefApp.getInstance(settings);
        client_ = cefApp_.createClient();
        browser_ = client_.createBrowser(startURL, useOSR, isTransparent);
        browerUI_ = browser_.getUIComponent();


        address_ = new JTextField(startURL, 100);
        address_.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                browser_.loadURL(address_.getText());
            }
        });

        getContentPane().add(address_, BorderLayout.NORTH);
        getContentPane().add(browerUI_, BorderLayout.CENTER);
        pack();
        setSize(800, 600);
        setVisible(true);
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                CefApp.getInstance().dispose();
                dispose();
            }
        });
    }

    public static void main(String[] args) {
        // Perform startup initialization on platforms that require it.
        try {
        String libpath =  "<path to project>/jcefdemo/Release"; 
        System.setProperty("java.library.path",libpath);
        final Field sysPathsField = ClassLoader.class.getDeclaredField("sys_paths");
        sysPathsField.setAccessible(true);
        sysPathsField.set(null, null);

         if (!CefApp.startup()) {
           System.out.println("Startup initialization failed!");
            return;
        }
        boolean useOsr = false;
        new MainFrame("http://www.google.com", true, true);
        System.out.println("Startup ");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
包jcefdemo;
导入java.awt.BorderLayout;
导入java.awt.Component;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.awt.event.WindowAdapter;
导入java.awt.event.WindowEvent;
导入javax.swing.JFrame;
导入javax.swing.JTextField;
导入org.cef.CefApp;
导入org.cef.CefApp.CefAppState;
导入org.cef.CefClient;
导入org.cef.cef设置;
导入org.cef.OS;
导入org.cef.browser.CefBrowser;
导入org.cef.handler.CefAppHandlerAdapter;
导入java.lang.reflect.Field;
公共类大型机扩展JFrame{
私有静态最终长serialVersionUID=-5570653778104813836L;
私有最终JTextField地址;
私人最终CefApp CefApp_u2;;
私人最终客户;
私人终审法院;
专用最终组件浏览器;
专用大型机(字符串startURL、布尔useOSR、布尔isTransparent){
CefApp.addAppHandler(新的CefAppHandlerAdapter(null){
@凌驾
公共无效状态已更改(org.cef.CefApp.CefAppState){
如果(state==CefAppState.TERMINATED)System.exit(0);
}
});
CefSettings=新的CefSettings();
settings.windowless_rendering_enabled=useOSR;
cefApp_u10;=cefApp.getInstance(设置);
client_ux=cefApp_ux.createClient();
浏览器=客户端。创建浏览器(startURL、useOSR、isTransparent);
browerUI=browser.getUIComponent();
地址=新的JTextField(startURL,100);
地址\ addActionListener(新ActionListener(){
@凌驾
已执行的公共无效操作(操作事件e){
浏览器\加载URL(地址\获取文本());
}
});
getContentPane().add(地址,BorderLayout.NORTH);
getContentPane().add(browerUI,BorderLayout.CENTER);
包装();
设置大小(800600);
setVisible(真);
addWindowListener(新的WindowAdapter(){
@凌驾
公共无效窗口关闭(WindowEvent e){
CefApp.getInstance().dispose();
处置();
}
});
}
公共静态void main(字符串[]args){
//在需要的平台上执行启动初始化。
试一试{
字符串libpath=“/jcefdemo/Release”;
setProperty(“java.library.path”,libpath);
最终字段sysPathsField=ClassLoader.class.getDeclaredField(“sys_路径”);
sysPathsField.setAccessible(true);
sysPathsField.set(null,null);
如果(!CefApp.startup()){
System.out.println(“启动初始化失败!”);
返回;
}
布尔useOsr=false;
新主机(“http://www.google.com“,真的,真的);
System.out.println(“启动”);
}捕获(例外e){
e、 printStackTrace();
}
}
}
但低于错误

java.lang.reflect.InvocationTargetException
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1349)
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1324)
    at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1348)
    at org.cef.CefApp.<init>(CefApp.java:164)
    at org.cef.CefApp.getInstance(CefApp.java:215)
    at org.cef.CefApp.getInstance(CefApp.java:193)
    at jcefdemo.JCefBrowser.<init>(JCefBrowser.java:34)
    at jcefdemo.JCefBrowser.main(JCefBrowser.java:57)
Caused by: java.lang.UnsatisfiedLinkError: org.cef.CefApp.N_PreInitialize()Z
    at org.cef.CefApp.N_PreInitialize(Native Method)
    at org.cef.CefApp.access$0(CefApp.java:548)
    at org.cef.CefApp$1.run(CefApp.java:157)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
initialize on Thread[AWT-EventQueue-0,6,main] with library path /Users/admin/Documents/test/jcefdemo/Release

java.lang.reflect.InvocationTargetException
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1349)
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1324)
    at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1348)
    at org.cef.CefApp.initialize(CefApp.java:418)
    at org.cef.CefApp.createClient(CefApp.java:309)
    at jcefdemo.JCefBrowser.<init>(JCefBrowser.java:35)
    at jcefdemo.JCefBrowser.main(JCefBrowser.java:57)
Caused by: java.lang.UnsatisfiedLinkError: org.cef.CefApp.N_Initialize(Ljava/lang/String;Lorg/cef/handler/CefAppHandler;Lorg/cef/CefSettings;)Z
    at org.cef.CefApp.N_Initialize(Native Method)
    at org.cef.CefApp.access$5(CefApp.java:549)
    at org.cef.CefApp$3.run(CefApp.java:411)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
java.lang.UnsatisfiedLinkError: org.cef.handler.CefClientHandler.N_CefClientHandler_CTOR()V
    at org.cef.handler.CefClientHandler.N_CefClientHandler_CTOR(Native Method)
    at org.cef.handler.CefClientHandler.<init>(CefClientHandler.java:39)
    at org.cef.CefClient.<init>(CefClient.java:90)
    at org.cef.CefApp.createClient(CefApp.java:314)
    at jcefdemo.JCefBrowser.<init>(JCefBrowser.java:35)
    at jcefdemo.JCefBrowser.main(JCefBrowser.java:57)
java.lang.reflect.InvocationTargetException
在java.awt.EventQueue.invokeAndWait(EventQueue.java:1349)处
在java.awt.EventQueue.invokeAndWait(EventQueue.java:1324)
位于javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1348)
在org.cef.CefApp.(CefApp.java:164)
位于org.cef.CefApp.getInstance(CefApp.java:215)
位于org.cef.CefApp.getInstance(CefApp.java:193)
在jcefdemo.JCefBrowser.(JCefBrowser.java:34)
位于jcefdemo.JCefBrowser.main(JCefBrowser.java:57)
原因:java.lang.unsatifiedLinkError:org.cef.CefApp.N_PreInitialize()Z
在org.cef.CefApp.N_预初始化(本机方法)
访问org.cef.CefApp.access$0(CefApp.java:548)
位于org.cef.CefApp$1.run(CefApp.java:157)
在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)中
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
在java.awt.EventQueue.access$500(EventQueue.java:97)
在java.awt.EventQueue$3.run(EventQueue.java:709)
在java.awt.EventQueue$3.run(EventQueue.java:703)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)中
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:105)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
使用库路径/Users/admin/Documents/test/jcefdemo/Release在线程[AWT-EventQueue-0,6,main]上初始化
java.lang.reflect.InvocationTargetException
在java.awt.EventQueue.invokeAndWait(EventQueue.java:1349)处
在java.awt.EventQueue.invokeAndWait(EventQueue.java:1324)
位于javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1348)
位于org.cef.CefApp.initialize(CefApp.java:418)
位于org.cef.CefApp.createClient(CefApp.java:309)
jcefdemo.JCefBrowser.(JCefBrowser.java:35)
位于jcefdemo.JCefBrowser.main(JCefBrowser.java:57)
原因:java.lang.unsatifiedlinkerror:org.cef.CefApp.N_Initialize(Ljava/lang/String;Lorg/cef/handler/CefAppHandler;Lorg/cef/CefSettings;)Z
在org.cef.CefApp.N_初始化(本机方法)
访问org.cef.CefApp.access$5(CefApp.java:549)
在org.cef.CefApp$3.run(CefApp.java:4