gpt4 book ai didi

使用 Java9 运行时的基于 eclipse mars 的应用程序中的 java.lang.NoClassDefFoundError : java. sql.Date

转载 作者:行者123 更新时间:2023-11-30 06:26:18 24 4
gpt4 key购买 nike

我想测试我们的 RCP 应用程序是否在 Java 9 运行时上运行。

我已经将基于 eclipse Mars 的 RCP 应用程序更新到最新的 Mars 版本,以使其从 osgi 的角度运行。

现在我得到一个新的异常:

java.lang.NoClassDefFoundError: java.sql.Date
at org.apache.axis.encoding.DefaultTypeMappingImpl.class$(DefaultTypeMappingImpl.java:120)
at org.apache.axis.encoding.DefaultTypeMappingImpl.initMappings(DefaultTypeMappingImpl.java:206)
at org.apache.axis.encoding.DefaultTypeMappingImpl.<init>(DefaultTypeMappingImpl.java:91)
at org.apache.axis.encoding.DefaultTypeMappingImpl.getSingletonDelegate(DefaultTypeMappingImpl.java:85)
at org.apache.axis.encoding.TypeMappingRegistryImpl.<init>(TypeMappingRegistryImpl.java:155)
at org.apache.axis.encoding.TypeMappingRegistryImpl.<init>(TypeMappingRegistryImpl.java:149)
at org.apache.axis.deployment.wsdd.WSDDDeployment.<init>(WSDDDeployment.java:449)
at org.apache.axis.deployment.wsdd.WSDDDocument.setDocument(WSDDDocument.java:139)
at org.apache.axis.deployment.wsdd.WSDDDocument.<init>(WSDDDocument.java:65)
at org.apache.axis.configuration.FileProvider.configureEngine(FileProvider.java:179)
at org.apache.axis.AxisEngine.init(AxisEngine.java:172)
at org.apache.axis.AxisEngine.<init>(AxisEngine.java:156)
at org.apache.axis.client.AxisClient.<init>(AxisClient.java:52)
at org.apache.axis.client.Service.getAxisClient(Service.java:104)
at org.apache.axis.client.Service.<init>(Service.java:113)
...
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at java.base/java.lang.Class.newInstance(Class.java:558)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
at org.eclipse.ui.internal.services.WorkbenchServiceRegistry.getSourceProviders(WorkbenchServiceRegistry.java:177)
at org.eclipse.ui.internal.services.SourceProviderService.readRegistry(SourceProviderService.java:108)
at org.eclipse.ui.internal.Workbench$47.runWithException(Workbench.java:2416)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:32)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4155)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3772)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2989)
at org.eclipse.ui.internal.Workbench.access$9(Workbench.java:2894)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:685)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:606)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at de.softproject.x4frontend.standalone.Application.start(Application.java:24)
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:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
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:564)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
at org.eclipse.equinox.launcher.Main.main(Main.java:1488)

我还在 vm 参数中添加了 --add-modules=java.se 选项。但无论我开始时使用或不使用此选项,都没有区别。

源代码和编译目标是 1.8 我只是想检查它是否在 JRE 9 上运行。

我现在不知道我错过了什么。也许有人暗示我接下来可以尝试什么?也许 osgi 没有将该模块识别为 bundle ?

最佳答案

为了使其更明显,我总结了错误单的结果:

Mars 无法访问 java.* 模块,并且无法修复。 Oxygen 1a 是第一个可用的平台版本。

我用上面的异常结果做了一个最小的例子,它在 Oxygen 平台上工作。

因此,如果需要在 java 9 中安全运行,基本上每个 RCP 应用程序都需要升级到 Oxygen。

有点遗憾的是,java 9 并不像其他主要版本那样真正向后兼容。但我们希望这是一笔很好的投资:)

关于使用 Java9 运行时的基于 eclipse mars 的应用程序中的 java.lang.NoClassDefFoundError : java. sql.Date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47140720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com