MacOSX系统jcefmaven用JDK17启动教程

  1. 拉取代码,git clone https://github.com/jcefmaven/jcefmaven.git

  2. 导入IDE,我用的是IntelliJ IDEA 2023.3,如果用其他的就正常导入Maven项目就行了。

  3. Maven构建一下

  4. 运行Main方法,运行me.friwi.jcefsampleapp.MainFrame#main方法。修改一下这里的地址,默认是谷歌,可以改成百度或者其他容易访问的网址

第一次运行的时候会下载一个针对系统的包,也是从Github上下载的,如果感觉慢的可以挂梯子。

下载完后,在工程目录的jcef-bundle文件夹下会多出很多文件,系统不同,文件可能也不同。这个是Mac的

  1. 如果运行的JDK版本是17,第一次运行可能会报错(从文档上看是高于16就会报错,我系统只有11和17,我用11运行没问题,17就会报错)
[0123/095427.154786:WARNING:chrome_browser_cloud_management_controller.cc(88)] Could not create policy manager as CBCM is not enabled.
Exception in thread "main" java.lang.IllegalAccessError: class org.cef.browser.mac.CefBrowserWindowMac (in unnamed module @0x3c0a50da) cannot access class sun.awt.AWTAccessor (in module java.desktop) because module java.desktop does not export sun.awt to unnamed module @0x3c0a50da
	at org.cef.browser.mac.CefBrowserWindowMac.getWindowHandle(CefBrowserWindowMac.java:27)
	at org.cef.browser.CefBrowserWr.getWindowHandle(CefBrowserWr.java:337)
	at org.cef.browser.CefBrowserWr.access$600(CefBrowserWr.java:49)
	at org.cef.browser.CefBrowserWr$3.addNotify(CefBrowserWr.java:232)
	at java.desktop/java.awt.Container.addNotify(Container.java:2804)
	at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4839)
	at java.desktop/java.awt.Container.addNotify(Container.java:2804)
	at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4839)
	at java.desktop/java.awt.Container.addNotify(Container.java:2804)
	at java.desktop/javax.swing.JComponent.addNotify(JComponent.java:4839)
	at java.desktop/javax.swing.JRootPane.addNotify(JRootPane.java:726)
	at java.desktop/java.awt.Container.addNotify(Container.java:2804)
	at java.desktop/java.awt.Window.addNotify(Window.java:791)
	at java.desktop/java.awt.Frame.addNotify(Frame.java:495)
	at java.desktop/java.awt.Window.pack(Window.java:829)
	at me.friwi.jcefsampleapp.MainFrame.<init>(MainFrame.java:173)
	at me.friwi.jcefsampleapp.MainFrame.main(MainFrame.java:202)

官网给出了解决方案

Limitations

  • No OSR mode supported on win-arm64 (no jogamp)
  • CefApp.addAppHandler(...) should not be used. Use builder.setAppHandler(...) instead (requires a CefMavenAppHandlerAdapter)
  • To run on JDK 16 or later:

To use on MacOSX, add the following JVM flags:

--add-opens java.desktop/sun.awt=ALL-UNNAMED
--add-opens java.desktop/sun.lwawt=ALL-UNNAMED
--add-opens java.desktop/sun.lwawt.macosx=ALL-UNNAMED

To use OSR (off-screen render) mode, add these flags for JOGL:

--add-exports java.base/java.lang=ALL-UNNAMED
--add-exports java.desktop/sun.awt=ALL-UNNAMED
--add-exports java.desktop/sun.java2d=ALL-UNNAMED

我们只关注To use on MacOSX, add the following JVM flags这部分就可以了,如果你也是用的IDEA,可以按照下面的方案配置

编辑运行配置

添加虚拟机选项

将上面的参数粘贴进去

粘贴完,点击后面的“展开”按钮,IDEA会自动格式化成一下的样子。

再次运行就OK了

posted @ 2024-01-23 10:10  InkYi  阅读(119)  评论(0编辑  收藏  举报