2016-11-10 291 views
1

我正在尝试为Java应用程序开发浏览器,并且我找到了JCEF。我做了这个guide没有任何错误。现在我想尝试一下简单的例子“MainFrame.Java”,它也是build。 我在eclipse中创建了一个项目,将jar文件添加到库并复制MainFrame文件。在Eclipse中使用Java进行CEF开发

如果我运行它,我得到这个错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jcef in java.library.path 
at java.lang.ClassLoader.loadLibrary(Unknown Source) 
at java.lang.Runtime.loadLibrary0(Unknown Source) 
at java.lang.System.loadLibrary(Unknown Source) 
at org.cef.CefApp.<init>(CefApp.java:157) 
at org.cef.CefApp.getInstance(CefApp.java:246) 
at org.cef.CefApp.getInstance(CefApp.java:233) 
at test.MainFrame.<init>(MainFrame.java:71) 
at test.MainFrame.main(MainFrame.java:154) 

我也尝试在这Question描述的步骤在评论的链接。但如果我在第一个step下载文件,我没有描述的文件或路径。

有人有一个想法,我怎么可以让它运行或我做它完全错误?

代码的大型机文件:

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_; 

/** 
* To display a simple browser window, it suffices completely to create an 
* instance of the class CefBrowser and to assign its UI component to your 
* application (e.g. to your content pane). But to be more verbose, this 
* CTOR keeps an instance of each object on the way to the browser UI. 
*/ 
private MainFrame(String startURL, boolean useOSR, boolean isTransparent) { 

    CefApp.addAppHandler(new CefAppHandlerAdapter(null) { 
     @Override 
     public void stateHasChanged(org.cef.CefApp.CefAppState state) { 
      // Shutdown the app if the native CEF part is terminated 
      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) { 
    new MainFrame("http://www.google.com", OS.isLinux(), false); 
} 

}

+0

嗨欢迎SO。请提供您正在运行的代码以帮助您。 – acostela

回答

0

我得到它的工作。我的问题是,我建立的二进制文件不正确

相关问题