java - 如何使用 openJDK11 运行 Eclipse?
问题描述
让 Eclipse(Photon,2018-09 或 2018-12)在 openJDK11 上运行必须eclipse.ini
是什么样子?
我已经安装了 openJDK 11.0.1 和 Eclipse 2018-09。我有一个带有 XML jar 的文件夹(Eclipse 似乎需要它):
javax.xml.libs/
javax.activation-1.2.0.jar
jaxb-api-2.3.1.jar
jaxb-core-2.3.0.1.jar
jaxb-impl-2.3.1.jar
我已经修改eclipse.ini
为使用 jdk 和库:
-startup
plugins/org.eclipse.equinox.launcher_1.5.100.v20180827-1352.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.800.v20180827-1352
-product
org.eclipse.epp.package.java.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm
D:/bin/jdk-11.0.1/bin
-vmargs
-cp D:/bin/javax.xml.libs/*
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-DEFAULT,ALL-SYSTEM
# --add-opens=org.eclipse.mylyn.bugzilla.core
-Dosgi.dataAreaRequiresExplicitInit=true
-Xms256m
-Xmx1024m
启动 Eclipse 可以工作,但会导致workspace/.metadata/.log
. 从第 21 行删除注释会eclipse.ini
阻止 Eclipse 启动。我究竟做错了什么?
!SESSION 2018-12-18 11:59:04.814 -----------------------------------------------
eclipse.buildId=4.9.0.I20180906-0745
java.version=11.0.1
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE
Framework arguments: -product org.eclipse.epp.package.java.product
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product
!ENTRY org.eclipse.mylyn.bugzilla.core 4 0 2018-12-18 11:59:06.177
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.mylyn.bugzilla.core [282]
Unresolved requirement: Require-Bundle: org.eclipse.mylyn.commons.xmlrpc; bundle-version="[3.8.0,4.0.0)"
-> Bundle-SymbolicName: org.eclipse.mylyn.commons.xmlrpc; bundle-version="3.24.2.v20180904-2231"; singleton:="true"
org.eclipse.mylyn.commons.xmlrpc [299]
Unresolved requirement: Require-Bundle: org.apache.xmlrpc; bundle-version="[3.0.0,4.0.0)"
-> Bundle-SymbolicName: org.apache.xmlrpc; bundle-version="3.0.0.v20100427-1100"
org.apache.xmlrpc [71]
Unresolved requirement: Import-Package: javax.xml.bind
Unresolved requirement: Require-Bundle: org.apache.xmlrpc
-> Bundle-SymbolicName: org.apache.xmlrpc; bundle-version="3.0.0.v20100427-1100"
at org.eclipse.osgi.container.Module.start(Module.java:447)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1685)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1664)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1627)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1558)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:233)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:343)
!ENTRY org.eclipse.mylyn.bugzilla.ui 4 0 2018-12-18 11:59:06.199
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.mylyn.bugzilla.ui [284]
Unresolved requirement: Require-Bundle: org.eclipse.mylyn.bugzilla.core; bundle-version="[3.8.0,4.0.0)"
-> Bundle-SymbolicName: org.eclipse.mylyn.bugzilla.core; bundle-version="3.24.2.v20180905-0003"; singleton:="true"
org.eclipse.mylyn.bugzilla.core [282]
Unresolved requirement: Require-Bundle: org.eclipse.mylyn.commons.xmlrpc; bundle-version="[3.8.0,4.0.0)"
-> Bundle-SymbolicName: org.eclipse.mylyn.commons.xmlrpc; bundle-version="3.24.2.v20180904-2231"; singleton:="true"
org.eclipse.mylyn.commons.xmlrpc [299]
Unresolved requirement: Require-Bundle: org.apache.xmlrpc; bundle-version="[3.0.0,4.0.0)"
-> Bundle-SymbolicName: org.apache.xmlrpc; bundle-version="3.0.0.v20100427-1100"
org.apache.xmlrpc [71]
Unresolved requirement: Import-Package: javax.xml.bind
Unresolved requirement: Require-Bundle: org.apache.xmlrpc
-> Bundle-SymbolicName: org.apache.xmlrpc; bundle-version="3.0.0.v20100427-1100"
at org.eclipse.osgi.container.Module.start(Module.java:447)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1685)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1664)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1627)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1558)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:233)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:343)
!ENTRY org.eclipse.mylyn.commons.xmlrpc 4 0 2018-12-18 11:59:06.223
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.mylyn.commons.xmlrpc [299]
Unresolved requirement: Require-Bundle: org.apache.xmlrpc; bundle-version="[3.0.0,4.0.0)"
-> Bundle-SymbolicName: org.apache.xmlrpc; bundle-version="3.0.0.v20100427-1100"
org.apache.xmlrpc [71]
Unresolved requirement: Import-Package: javax.xml.bind
at org.eclipse.osgi.container.Module.start(Module.java:447)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1685)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1664)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1627)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1558)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:233)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:343)
!ENTRY org.eclipse.mylyn.tasks.core 4 0 2018-12-18 11:59:11.498
!MESSAGE Unexpected error while loading repository template extensions
!SUBENTRY 1 org.eclipse.mylyn.tasks.core 4 0 2018-12-18 11:59:11.498
!MESSAGE Could not load repository template extension contributed by 'org.eclipse.mylyn.bugzilla.ide' with connectorKind 'bugzilla'
!ENTRY org.eclipse.ui 4 0 2018-12-18 11:59:18.414
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.NullPointerException
at org.eclipse.ui.internal.intro.impl.model.url.IntroURL.switchToLaunchBar(IntroURL.java:675)
at org.eclipse.ui.internal.intro.impl.model.url.IntroURL.doExecute(IntroURL.java:211)
at org.eclipse.ui.internal.intro.impl.model.url.IntroURL.lambda$0(IntroURL.java:146)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72)
at org.eclipse.ui.internal.intro.impl.model.url.IntroURL.execute(IntroURL.java:146)
at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartLocationListener.changing(BrowserIntroPartLocationListener.java:130)
at org.eclipse.swt.browser.IE.lambda$6(IE.java:525)
at org.eclipse.swt.ole.win32.OleEventTable.sendEvent(OleEventTable.java:58)
at org.eclipse.swt.ole.win32.OleEventSink.notifyListener(OleEventSink.java:160)
at org.eclipse.swt.ole.win32.OleEventSink.Invoke(OleEventSink.java:128)
at org.eclipse.swt.ole.win32.OleEventSink.access$1(OleEventSink.java:105)
at org.eclipse.swt.ole.win32.OleEventSink$1.method6(OleEventSink.java:79)
at org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:122)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2309)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3559)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:628)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:563)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:151)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:199)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:391)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:246)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:595)
at org.eclipse.equinox.launcher.Main.run(Main.java:1501)
!ENTRY org.eclipse.core.jobs 4 2 2018-12-18 12:04:15.682
!MESSAGE An internal error occurred during: "Polling news feeds".
!STACK 0
java.lang.NoClassDefFoundError: javax/xml/bind/JAXBContext
at org.eclipse.mylyn.internal.commons.notifications.feed.FeedReader.parse(FeedReader.java:52)
at org.eclipse.recommenders.news.impl.poll.DefaultFeedItemStore.parseNewsItems(DefaultFeedItemStore.java:135)
at org.eclipse.recommenders.news.impl.poll.DefaultFeedItemStore.udpate(DefaultFeedItemStore.java:53)
at org.eclipse.recommenders.news.impl.poll.DefaultNewsPollingService.fallbackToLocalStore(DefaultNewsPollingService.java:136)
at org.eclipse.recommenders.news.impl.poll.DefaultNewsPollingService.poll(DefaultNewsPollingService.java:104)
at org.eclipse.recommenders.news.impl.poll.DefaultNewsPollingService.poll(DefaultNewsPollingService.java:64)
at org.eclipse.recommenders.internal.news.rcp.poll.PollFeedsJob.run(PollFeedsJob.java:70)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBContext cannot be found by org.eclipse.mylyn.commons.notifications.feed_1.16.0.v20180904-2231
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:511)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:414)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:153)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 8 more
!ENTRY org.eclipse.core.jobs 4 2 2018-12-18 12:09:15.684
!MESSAGE An internal error occurred during: "Polling news feeds".
!STACK 0
java.lang.NoClassDefFoundError: javax/xml/bind/JAXBContext
at org.eclipse.mylyn.internal.commons.notifications.feed.FeedReader.parse(FeedReader.java:52)
at org.eclipse.recommenders.news.impl.poll.DefaultFeedItemStore.parseNewsItems(DefaultFeedItemStore.java:135)
at org.eclipse.recommenders.news.impl.poll.DefaultFeedItemStore.udpate(DefaultFeedItemStore.java:53)
at org.eclipse.recommenders.news.impl.poll.DefaultNewsPollingService.fallbackToLocalStore(DefaultNewsPollingService.java:136)
at org.eclipse.recommenders.news.impl.poll.DefaultNewsPollingService.poll(DefaultNewsPollingService.java:104)
at org.eclipse.recommenders.news.impl.poll.DefaultNewsPollingService.poll(DefaultNewsPollingService.java:64)
at org.eclipse.recommenders.internal.news.rcp.poll.PollFeedsJob.run(PollFeedsJob.java:70)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
解决方案
此错误是由 Mylyn Bugzilla 连接器使用javax.xml.bind
已在 Java 6 中引入但在 Java 11 中删除的包的类引起的(请参阅:JEP 320:删除 Java EE 和 CORBA 模块)。
在 Eclipse 中,Bugzilla 连接器用于以下功能,这些功能在每次启动 Eclipse 时都会记录上述错误:
- 帮助 > 报告错误或增强...
- 搜索 > 搜索...,选项卡任务搜索
不幸的是,这个错误仍然存在于 Eclipse 2018-12 中的一些 IDE 包中,包括您使用的 Java 开发人员的 Eclipse IDE(在您的日志中-product org.eclipse.epp.package.java.product
)。
使用以下方法之一作为解决方法(使用 Eclipse 2018-12 测试):
- 使用Java 8、9 或 10 运行 Eclipse,但在Window > Preferences: Java > Installed JREs中使用 Java 11 JDK
- 使用Eclipse IDE for Enterprise Java Developers而不是Eclipse IDE for Java Developers
- 将以下 JAR 从Eclipse Orbit复制 到
dropins
Eclipse 2018-12 IDE 的文件夹中:
有关详细信息,请参阅此处和此处的 Eclipse 跨项目问题开发邮件列表上的我的(2018-12 不幸为时已晚)邮件。
推荐阅读
- math - 找到到达给定坐标所需的最小速度?
- flutter - 我正在尝试获取数据并在文本小部件中写入。但是我有一个错误类型'String'不是'int'类型的子类型?我怎样才能解决这个问题?
- laravel - 无法让用户在使用 facebook socialite 登录之前选择帐户
- javascript - 在 Gatsby 和 Material UI 中使用 Lottie 动画时出现布局问题
- scala - Scala遗留代码:如何在执行路径的不同点访问输入参数?
- laravel - Laravel 翻译动态电子邮件(不带翻译文件)
- javascript - JS - 发送电子邮件需要用户登录 gmail 帐户
- python - 使用条件的变量转换不能正常工作,如何调试?
- swift - 钥匙串 API 只查看系统钥匙串而不是登录钥匙串 Mac OS Swift
- gitlab-ci - 为什么我找不到 Gitlab 缓存目录?