【问题标题】:Eclipse plugin runtime creation Issue - java.lang.NoClassDefFoundErrorEclipse 插件运行时创建问题 - java.lang.NoClassDefFoundError
【发布时间】:2016-11-20 10:56:29
【问题描述】:

我正在获取 Eclipse 插件:org/jongo/ResultHandler 的 java.lang.NoClassDefFoundError

在添加必要的 jar 文件后,我的源代码编译成功。我已使用 project>build path 作为 Eclipse 中的参考库添加了这些 jar。

现在的问题是这些外部 jar 文件在运行时期间不起作用。

我的 MANIFEST.MF 文件只有一个 jar,没有外部 jar。不知道如何在这里添加外部jar。

Bundle-ClassPath: Test.jar

Build.properties

source.Test.jar = src/
bin.includes = plugin.xml,\
               META-INF/,\
               Test.jar

请建议如何在运行时运行我的应用程序,该应用程序看起来像外部 jars。

【问题讨论】:

  • 未找到的 jar 是 OSGi 捆绑包吗?如果是,则不应将 jar 添加到包含的 jar 中,而是添加到依赖项中。如果没有,您还应该将其添加到build.propertiesbin.includes 部分。
  • 谢谢。它现在正在工作:)

标签: java eclipse eclipse-plugin knime jongo


【解决方案1】:

在创建插件时,切勿将 jars 直接添加到构建路径。

您必须在您的插件(或作为其他插件)中包含所有 jar,并设置 Bundle-Classpath 并将这些 jar 包含在 build.properties 中。如果您要引用其他插件,只需将它们添加到您的插件的依赖项中。

您可以使用 MANIFEST.MF/plugin.xml/build.properties 编辑器将它们添加到 MANIFEST.MF。

在编辑器的“运行时”选项卡上,将 jars 添加到“类路径”条目中(主插件代码还应该有一个“.”条目)。

在编辑器的“构建”选项卡上,检查要包含在插件中的所有 jar。您应该将罐子放在插件中的某个位置(例如“lib”目录)。

例如,在这个 build.properties 中:

source.. = src/
output.. = bin/
bin.includes = META-INF/,\
               .,\
               plugin.properties,\
               plugin.xml,\
               lib/jogg-0.0.7.jar,\
               lib/jorbis-0.0.15.jar,\
               lib/vorbisspi1.0.2.jar,\
               icons/

我在“lib”目录中有三个 jar。

为此的 MANIFEST.MF 如下所示:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: greg.music.ogg;singleton:=true
Bundle-Version: 2.0.0.qualifier
Bundle-Vendor: %plugin.provider
Bundle-Localization: plugin
Require-Bundle: greg.music.core;bundle-version="1.0.0",
 greg.music.resources;bundle-version="1.0.0",
 org.eclipse.core.runtime,
 javazoom.jlgui.basicplayer,
 org.eclipse.e4.core.services;bundle-version="2.0.100"
Bundle-ClassPath: .,
 lib/jogg-0.0.7.jar,
 lib/jorbis-0.0.15.jar,
 lib/vorbisspi1.0.2.jar
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: javax.annotation;version="1.0.0",
 javax.inject;version="1.0.0",
 org.eclipse.e4.core.di.annotations

编辑器中的运行时选项卡:

构建选项卡:

【讨论】:

  • 感谢 Greg 的详细帮助 :)
猜你喜欢
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-30
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多