【问题标题】:Class not found while generating the GUI sources java.lang.NoClassDefFoundError: com/sun/xml/bind/v2/model/annotation/AnnotationReader [Codenameone]生成 GUI 源时找不到类 java.lang.NoClassDefFoundError: com/sun/xml/bind/v2/model/annotation/AnnotationReader [Codenameone]
【发布时间】:2021-06-02 02:28:13
【问题描述】:

我使用的是 eclipse 2021-3(详细版本如下),在 GUIBuilder 中更新我的表单后,我注意到表单类中的 initGuiBuilderComponents java 方法为空,但 .gui 文件中声明了组件。

在 GUIBuilder 中保存更改后得到的堆栈跟踪是:

enGuiSrc:
[generateGuiSources] Generating GUI sources
[generateGuiSources] timeStr=1.0.0-1621275794779-1621275373210, lastTime=1.0.0-1621275794779-1621275373210
[generateGuiSources] Summary.java unmodified, skipping
[generateGuiSources] timeStr=1.0.0-1622573752664-1622594808739, lastTime=1.0.0-1622573752664-1622594776479
[generateGuiSources] Processing GUI builder file: /Users/jahrvis/eclipse-workspace-mobile/BabyTracker/src/com/jahrvis/mobile/babytracker/forms/CalendarForm.java
[generateGuiSources] Attempting to generate GUI sources for /Users/jahrvis/eclipse-workspace-mobile/BabyTracker/res/guibuilder/com/jahrvis/mobile/babytracker/forms/CalendarForm.gui with System JAXB
[generateGuiSources] Failed to generate Gui Source with System JAXB.  Will attempt using bundled JAXB.

BUILD FAILED
/Users/jahrvis/eclipse-workspace-mobile/BabyTracker/build.xml:49: java.lang.RuntimeException: java.lang.NoClassDefFoundError: com/sun/xml/bind/v2/model/annotation/AnnotationReader
    at com.codename1.build.client.GenerateGuiSources.generateGuiSource(GenerateGuiSources.java:294)
    at com.codename1.build.client.GenerateGuiSources.generateGuiSource(GenerateGuiSources.java:246)
    at com.codename1.build.client.GenerateGuiSources.execute(GenerateGuiSources.java:216)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
    at org.apache.tools.ant.Task.perform(Task.java:350)
    at org.apache.tools.ant.Target.execute(Target.java:449)
    at org.apache.tools.ant.Target.performTasks(Target.java:470)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1401)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1374)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:34)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1264)
    at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:712)
    at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:532)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    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.ant.core.AntRunner.run(AntRunner.java:374)
    at org.eclipse.ant.core.AntRunner.run(AntRunner.java:476)
    at codenameoneplugin.EclipseGUIBuilderConnector$2.run(EclipseGUIBuilderConnector.java:142)
    at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.NoClassDefFoundError: com/sun/xml/bind/v2/model/annotation/AnnotationReader
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
    at org.apache.tools.ant.AntClassLoader.defineClassFromData(AntClassLoader.java:1153)
    at org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1321)
    at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1373)
    at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1338)
    at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1093)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3325)
    at java.base/java.lang.Class.getMethodsRecursive(Class.java:3466)
    at java.base/java.lang.Class.getMethod0(Class.java:3452)
    at java.base/java.lang.Class.getMethod(Class.java:2199)
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:258)
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:250)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:447)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:652)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:599)
    at com.codename1.build.client.GenerateGuiSources.generateGuiSource_(GenerateGuiSources.java:301)
    at com.codename1.build.client.GenerateGuiSources.access$000(GenerateGuiSources.java:32)
    at com.codename1.build.client.GenerateGuiSources$1.run(GenerateGuiSources.java:272)
    ... 1 more
Caused by: java.lang.ClassNotFoundException: com.sun.xml.bind.v2.model.annotation.AnnotationReader
    at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1383)
    at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1338)
    at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1093)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 22 more

Total time: 0 seconds

Version: 2021-03 (4.19.0)
Build id: 20210312-0638 

如果这是新 Eclipse 的框架问题,有任何线索吗?

【问题讨论】:

    标签: java eclipse macos codenameone


    【解决方案1】:

    这与JDK有关。最初代码是为 JDK 8 编写的,但后来删除了 jaxb,对于 JDK 11,我们尝试动态下载它,但这并不总是很好。

    我认为最好的解决方法是migration to Maven,它应该解决问题。

    或者尝试确保您运行的是 JDK 8,这应该可以解决此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-20
      • 1970-01-01
      • 2013-12-16
      • 2021-09-13
      • 2023-04-09
      • 2013-08-07
      相关资源
      最近更新 更多