You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Card 3.0.x Eclipse插件创建小程序报JAXBException求助

Java Card Eclipse插件创建项目时JAXBException错误解决

问题背景

之前用Eclipse+Java Card插件开发小程序,切换到Java Card 3.0.x版本时,安装了Oracle官网的运行时包java_card_devkit_tools-bin-v24.0-b_57-20-FEB-2024.zip和对应Eclipse插件java_card_devkit_eclipse_plugin-bin-v24.0-b_50-20-FEB-2024,但创建新Java Card小程序的最后一步,项目向导报错:

创建Java Card项目时出错。javax/xml/bind/JAXBException

查资料得知,这个问题是因为新版本Java运行时移除了JAXB组件,但Oracle的Java Card插件依赖它。网上大部分解决方案是修改应用源码(比如Spring项目)或通过Maven/Gradle添加依赖,但这个错误出在IDE内部,没法修改Eclipse或插件的源码。有人建议安装eclipse-ee4j,但下载后不知道怎么添加到Eclipse里,而且目前还没创建出项目,没有可修改的源码。

环境信息

  • Eclipse版本:2024-03 (4.31.0),Build id:20240307-1437
  • Java版本:18.0.2(Oracle)
  • 测试过的另一个环境:Eclipse IDE for Enterprise Java and Web Developers,Java 17.0.10(Eclipse Adoptium),同样报错

错误日志

Java 18环境下的错误日志

org.eclipse.core.resources
Error
4
Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".

java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
    at com.oracle.javacard.jcdk.core.ResourceDeltaProcessor.visit(ResourceDeltaProcessor.java:44)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:77)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:61)
    at com.oracle.javacard.jcdk.core.Activator$1.resourceChanged(Activator.java:96)
    at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:321)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
    at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:311)
    at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:174)
    at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:458)
    at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1586)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2462)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2473)
    at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:6082)
    at org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:108)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:124)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException cannot be found by com.oracle.javacard.jcdk.core_1.0.0.201505220623
    at org.eclipse.osgi.internal.loader.BundleLoader.generateException(BundleLoader.java:562)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:557)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:434)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:174)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 16 more

Java 17环境下的错误日志

eclipse.buildId=4.31.0.20240307-1200
java.version=17.0.10
java.vendor=Eclipse Adoptium
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product -data file:/C:/Users/E/eclipse-workspace305/

org.eclipse.core.resources
Error
Sat May 11 12:04:06 GMT+03:30 2024
Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".

java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
    at com.oracle.javacard.jcdk.core.ResourceDeltaProcessor.visit(ResourceDeltaProcessor.java:44)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:77)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:61)
    at com.oracle.javacard.jcdk.core.Activator$1.resourceChanged(Activator.java:96)
    at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:321)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
    at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:311)
    at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:174)
    at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:458)
    at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1586)
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:221)
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:300)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException cannot be found by com.oracle.javacard.jcdk.core_1.0.0.201505220623
    at org.eclipse.osgi.internal.loader.BundleLoader.generateException(BundleLoader.java:562)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:557)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:434)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:174)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
    ... 14 more

解决方案

方案1:使用Java 8运行Eclipse

JAXB是Java 8的内置组件,用Java 8启动Eclipse可以直接解决依赖问题:

  1. 下载Java 8(Oracle或OpenJDK版本均可)
  2. 找到Eclipse安装目录下的eclipse.ini文件,用文本编辑器打开
  3. 在-vmargs行之前添加Java 8的javaw.exe路径,示例:
    -vm
    C:\Program Files\Java\jdk1.8.0_391\bin\javaw.exe
    
  4. 保存文件后重启Eclipse,再尝试创建Java Card项目

方案2:给Eclipse添加JAXB模块参数(Java 11+适用)

如果不想更换Java版本,可以通过修改Eclipse启动参数引入JAXB模块:

  1. 打开eclipse.ini文件,在-vmargs行下方添加:
    --add-modules=java.xml.bind
    
  2. 保存并重启Eclipse

方案3:安装Eclipse EE4J插件

按照以下步骤安装EE4J插件:

  1. 打开Eclipse,点击顶部菜单栏的Help -> Eclipse Marketplace
  2. 在搜索框输入Eclipse EE4J,找到对应插件后点击Install
  3. 按照提示完成安装,重启Eclipse后再尝试创建项目

内容的提问来源于stack exchange,提问作者VSB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 13:39:49