【问题标题】:NoClassDefFoundError in eclipse when using AST使用 AST 时 Eclipse 中的 NoClassDefFoundError
【发布时间】:2012-12-09 05:12:17
【问题描述】:

当尝试在 Eclipse 中的 java 项目中使用 AST 时,我收到此错误消息是运行时: 线程“main”中的异常 java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IAdaptable

我尝试将 core.runtime jar 添加到构建路径,但这没有帮助。

代码一开始就失败了:

AST ast = AST.newAST(AST.JLS4);

我也尝试在我的计算机中添加所有 jar,但无济于事。有什么想法吗?

堆栈跟踪:

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IAdaptable
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at testRun.main(testRun.java:44)
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.IAdaptable
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 25 more

【问题讨论】:

  • 你制作了可执行的jar吗?
  • 如果您发布堆栈跟踪信息会有所帮助
  • 无 Jar,在 eclipse 上按“播放”即可运行。
  • 您是否对目标平台进行了调整?您按下“播放”按钮的文本是什么?您是在开发插件还是 Java 应用程序?提供更多细节。

标签: java eclipse runtime abstract-syntax-tree


【解决方案1】:

除了将org.eclipse.jdt.core_[version_number].jar 添加到您的构建路径之外,您还需要添加org.eclipse.equinox.common_[version_number].jar

【讨论】:

  • @Templar 因为类 org.eclipse.core.runtime.IAdaptable 在包 org.eclipse.equinox.common 中定义
  • @Sean 我有这两个罐子(org.eclipse.equinox.common-3.6.0.v20100503 和 org.eclipse.jdt.core-3.7.0.v_B61),但我仍然得到同样的例外。两个 jar 的版本号是否需要相同?我也有 org.eclipse.core.runtime-3.1.0.jar 它也有 IAdaptable 类。即使我删除了这个 jar,它仍然会给出同样的错误。有什么想法吗?
  • @ShreyansPagariya 我认为你应该使用兼容的版本(比如让所有这些 jars 保持最新。从 mvnrepo 搜索);确保将这些 jars 添加到您的类路径中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多