Java12上的Eclipse4

Java12上的Eclipse4,java,eclipse,eclipse-rcp,e4,Java,Eclipse,Eclipse Rcp,E4,我正在将Eclipse4应用程序迁移到jre12(8到12迁移)。当我从Eclipse内部在我的开发环境中运行应用程序时,一切正常。当我使用Tycho构建应用程序时,我在启动应用程序时遇到了一个错误 !SESSION 2019-06-17 10:53:38.481 ----------------------------------------------- eclipse.buildId=unknown java.version=12.0.1 java.vendor=Oracle Corpor

我正在将Eclipse4应用程序迁移到jre12(8到12迁移)。当我从Eclipse内部在我的开发环境中运行应用程序时,一切正常。当我使用Tycho构建应用程序时,我在启动应用程序时遇到了一个错误

!SESSION 2019-06-17 10:53:38.481 -----------------------------------------------
eclipse.buildId=unknown
java.version=12.0.1
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -clearPersistedState
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -clearPersistedState

!ENTRY org.eclipse.osgi 4 0 2019-06-17 10:53:44.449
!MESSAGE Application error
!STACK 1
org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:410)
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultHeadlessContext(E4Application.java:491)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultContext(E4Application.java:505)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:204)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:149)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    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:567)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
Caused by: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct
    at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:124)
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:399)
    ... 18 more
Caused by: java.lang.ClassNotFoundException: javax.annotation.PostConstruct cannot be found by org.eclipse.e4.core.di_1.6.100.v20170421-1418
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 20 more

!ENTRY org.eclipse.e4.ui.workbench 4 0 2019-06-17 10:53:44.468
!MESSAGE FrameworkEvent ERROR
!STACK 0
java.lang.NoClassDefFoundError: javax/annotation/PreDestroy
    at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:450)
    at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:156)
    at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:78)
    at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:111)
    at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.handleInvalid(TrackableComputationExt.java:74)
    at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:178)
    at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose(EclipseContextOSGi.java:99)
    at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleChanged(EclipseContextOSGi.java:141)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213)
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120)
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112)
    at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168)
    at org.eclipse.osgi.container.Module.publishEvent(Module.java:476)
    at org.eclipse.osgi.container.Module.doStop(Module.java:634)
    at org.eclipse.osgi.container.Module.stop(Module.java:498)
    at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:202)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:165)
    at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: java.lang.ClassNotFoundException: javax.annotation.PreDestroy cannot be found by org.eclipse.e4.core.di_1.6.100.v20170421-1418
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 21 more
在我们的自定义插件中,javax.annotations被配置为必需的插件。 我还将javax.annotations添加到我们的maven文件中。当我检查构建项目中的库时,javax.annotation_1.2.0.v201602091430.jar包含在plugins目录中

我尝试使用模块java.se.ee,该模块在中得到了回答。 Eclipse4应用程序仍然找不到依赖项

有人能帮我吗

我的目标文件中的目标存储库是(可以在此处查看完整文件):


将我的目标文件更改为新格式,现在可以使用了。 目标文件看起来像:

#This configuration file was written by: org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser
#Mon Jun 17 10:48:39 CEST 2019
serverLocation=Development
eclipse.p2.profile=DefaultProfile
osgi.framework=file\:plugins/org.eclipse.osgi_3.12.100.v20180210-1608.jar
equinox.use.ds=true
ds.delayed.keepInstances=true
osgi.bundles=reference\:file\:org.eclipse.equinox.simpleconfigurator_1.2.1.v20180131-1435.jar@1\:start
org.eclipse.equinox.simpleconfigurator.configUrl=file\:org.eclipse.equinox.simpleconfigurator/bundles.info
eclipse.product=CR-IT_client.product
osgi.framework.extensions=reference\:file\:org.eclipse.equinox.region_1.4.0.v20170117-1425.jar,reference\:file\:org.eclipse.equinox.weaving.hook_1.2.0.v20160929-1449.jar,reference\:file\:org.eclipse.osgi.compatibility.state_1.1.0.v20170516-1513.jar
osgi.bundles.defaultStartLevel=4
eclipse.p2.data.area=@config.dir/../p2
eclipse.application=org.eclipse.e4.ui.workbench.swt.E4Application
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?>
<target includeMode="feature" name="Running Platform">
    <locations>
        <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
            <repository location="http://download.eclipse.org/nattable/releases/1.5.0/repository/"/>
            <unit id="org.eclipse.nebula.widgets.nattable.core.feature.feature.group" version="1.5.0.201703192131"/>
            <unit id="org.eclipse.nebula.widgets.nattable.extension.e4.feature.feature.group" version="1.1.0.201703192131"/>
            <unit id="org.eclipse.nebula.widgets.nattable.extension.glazedlists.feature.feature.group" version="1.5.0.201703192131"/>
            <unit id="org.eclipse.nebula.widgets.nattable.extension.nebula.feature.feature.group" version="1.1.0.201703192131"/>
            <unit id="org.eclipse.nebula.widgets.nattable.extension.poi.feature.feature.group" version="1.5.0.201703192131"/>
        </location>
        <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
            <repository location="http://download.eclipse.org/releases/2019-06/201904191000"/>
            <unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
            <unit id="org.eclipse.platform.sdk" version="0.0.0"/>
            <unit id="org.eclipse.wst.common_core.feature.feature.group" version="0.0.0"/>
            <unit id="org.eclipse.wst.xml_core.feature.feature.group" version="0.0.0"/>
            <unit id="org.eclipse.datatools.connectivity" version="0.0.0"/>
            <unit id="org.eclipse.emf.databinding" version="0.0.0"/>
            <unit id="org.eclipse.emf.ecore.edit" version="0.0.0"/>
            <unit id="org.eclipse.wb.swing.FormLayout.lib" version="0.0.0"/>
            <unit id="org.hamcrest.core" version="0.0.0"/>
            <unit id="org.junit" version="0.0.0"/>
        </location>
        <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
            <repository location="http://download.eclipse.org/nebula/releases/latest"/>
            <unit id="org.eclipse.nebula.widgets.pshelf.css.feature.feature.group" version="1.0.0.201812241324"/>
            <unit id="org.eclipse.nebula.widgets.pshelf.feature.feature.group" version="1.0.0.201812241324"/>
        </location>
        <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="false" type="InstallableUnit">
            <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20190226160451/repository"/>
            <unit id="com.google.gson" version="2.8.2.v20180104-1110"/>
            <unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
            <unit id="javax.activation" version="1.1.0.v201211130549"/>
            <unit id="javax.mail" version="1.4.0.v201005080615"/>
            <unit id="javax.xml.ws" version="2.1.0.v200902101523"/>
            <unit id="org.apache.batik.util.gui" version="1.9.1.v20180227-1645"/>
            <unit id="org.apache.commons.collections" version="3.2.2.v201511171945"/>
            <unit id="org.apache.commons.lang3" version="3.1.0.v201403281430"/>
            <unit id="org.apache.commons.lang" version="0.0.0"/>
            <unit id="org.apache.commons.net" version="3.2.0.v201305141515"/>
            <unit id="org.apache.xalan" version="2.7.1.v201005080400"/>
            <unit id="org.apache.xerces" version="2.9.0.v201101211617"/>
            <unit id="org.apache.xml.resolver" version="1.2.0.v201005080400"/>
            <unit id="org.apache.xml.serializer" version="2.7.1.v201005080400"/>
            <unit id="java_cup.runtime" version="0.0.0"/>
        </location>

    </locations>
    <environment>
        <arch>x86_64</arch>
        <os>win32</os>
        <ws>win32</ws>
        <nl>en_US</nl>
    </environment>
</target>

x86_64
win32
win32
恩努斯

将我的目标文件更改为新格式,现在可以使用了。 目标文件看起来像:

#This configuration file was written by: org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser
#Mon Jun 17 10:48:39 CEST 2019
serverLocation=Development
eclipse.p2.profile=DefaultProfile
osgi.framework=file\:plugins/org.eclipse.osgi_3.12.100.v20180210-1608.jar
equinox.use.ds=true
ds.delayed.keepInstances=true
osgi.bundles=reference\:file\:org.eclipse.equinox.simpleconfigurator_1.2.1.v20180131-1435.jar@1\:start
org.eclipse.equinox.simpleconfigurator.configUrl=file\:org.eclipse.equinox.simpleconfigurator/bundles.info
eclipse.product=CR-IT_client.product
osgi.framework.extensions=reference\:file\:org.eclipse.equinox.region_1.4.0.v20170117-1425.jar,reference\:file\:org.eclipse.equinox.weaving.hook_1.2.0.v20160929-1449.jar,reference\:file\:org.eclipse.osgi.compatibility.state_1.1.0.v20170516-1513.jar
osgi.bundles.defaultStartLevel=4
eclipse.p2.data.area=@config.dir/../p2
eclipse.application=org.eclipse.e4.ui.workbench.swt.E4Application
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?>
<target includeMode="feature" name="Running Platform">
    <locations>
        <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
            <repository location="http://download.eclipse.org/nattable/releases/1.5.0/repository/"/>
            <unit id="org.eclipse.nebula.widgets.nattable.core.feature.feature.group" version="1.5.0.201703192131"/>
            <unit id="org.eclipse.nebula.widgets.nattable.extension.e4.feature.feature.group" version="1.1.0.201703192131"/>
            <unit id="org.eclipse.nebula.widgets.nattable.extension.glazedlists.feature.feature.group" version="1.5.0.201703192131"/>
            <unit id="org.eclipse.nebula.widgets.nattable.extension.nebula.feature.feature.group" version="1.1.0.201703192131"/>
            <unit id="org.eclipse.nebula.widgets.nattable.extension.poi.feature.feature.group" version="1.5.0.201703192131"/>
        </location>
        <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
            <repository location="http://download.eclipse.org/releases/2019-06/201904191000"/>
            <unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
            <unit id="org.eclipse.platform.sdk" version="0.0.0"/>
            <unit id="org.eclipse.wst.common_core.feature.feature.group" version="0.0.0"/>
            <unit id="org.eclipse.wst.xml_core.feature.feature.group" version="0.0.0"/>
            <unit id="org.eclipse.datatools.connectivity" version="0.0.0"/>
            <unit id="org.eclipse.emf.databinding" version="0.0.0"/>
            <unit id="org.eclipse.emf.ecore.edit" version="0.0.0"/>
            <unit id="org.eclipse.wb.swing.FormLayout.lib" version="0.0.0"/>
            <unit id="org.hamcrest.core" version="0.0.0"/>
            <unit id="org.junit" version="0.0.0"/>
        </location>
        <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
            <repository location="http://download.eclipse.org/nebula/releases/latest"/>
            <unit id="org.eclipse.nebula.widgets.pshelf.css.feature.feature.group" version="1.0.0.201812241324"/>
            <unit id="org.eclipse.nebula.widgets.pshelf.feature.feature.group" version="1.0.0.201812241324"/>
        </location>
        <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="false" type="InstallableUnit">
            <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20190226160451/repository"/>
            <unit id="com.google.gson" version="2.8.2.v20180104-1110"/>
            <unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
            <unit id="javax.activation" version="1.1.0.v201211130549"/>
            <unit id="javax.mail" version="1.4.0.v201005080615"/>
            <unit id="javax.xml.ws" version="2.1.0.v200902101523"/>
            <unit id="org.apache.batik.util.gui" version="1.9.1.v20180227-1645"/>
            <unit id="org.apache.commons.collections" version="3.2.2.v201511171945"/>
            <unit id="org.apache.commons.lang3" version="3.1.0.v201403281430"/>
            <unit id="org.apache.commons.lang" version="0.0.0"/>
            <unit id="org.apache.commons.net" version="3.2.0.v201305141515"/>
            <unit id="org.apache.xalan" version="2.7.1.v201005080400"/>
            <unit id="org.apache.xerces" version="2.9.0.v201101211617"/>
            <unit id="org.apache.xml.resolver" version="1.2.0.v201005080400"/>
            <unit id="org.apache.xml.serializer" version="2.7.1.v201005080400"/>
            <unit id="java_cup.runtime" version="0.0.0"/>
        </location>

    </locations>
    <environment>
        <arch>x86_64</arch>
        <os>win32</os>
        <ws>win32</ws>
        <nl>en_US</nl>
    </environment>
</target>

x86_64
win32
win32
恩努斯

Edit my post with the target information你应该有足够长的时间知道不要把这些信息放到评论中,而是编辑你的问题。config.ini中是否加载了javax.annotations(如果config.ini使用org.eclipse.equinox.simpleconfigurator,则为bundles.info)。是否将启动级别配置为推荐值(最近更改过)。它使用org.eclipse.equinox.simpleconfigurator_1.2.1.v20180131-1435.jar您只需要使用2019-03的目标平台使用目标信息编辑我的文章您应该有足够的时间知道不要将这些信息放入注释中,而是编辑您的问题。config.ini中是否加载了javax.annotations(如果config.ini使用org.eclipse.equinox.simpleconfigurator,则为bundles.info)。是否将启动级别配置为建议值(最近更改)。它使用org.eclipse.equinox.simpleconfigurator_1.2.1.v20180131-1435.jar您只需要使用2019-03的目标平台