Eclipse 插件运行时创建问题 - java.lang.NoClassDefFoundError
Eclipse plugin runtime creation Issue - java.lang.NoClassDefFoundError
我正在获取 Eclipse 插件:java.lang.NoClassDefFoundError for org/jongo/ResultHandler
我的源代码编译成功 添加必要的 jar files.I 已使用项目>构建路径添加这些 jar 作为 Eclipse 中的参考库。
现在的问题是这些外部 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。
创建插件时切勿将 jars 直接添加到构建路径。
您必须将所有 jar 包含在您的插件中(或作为其他插件)并设置 Bundle-Classpath
并将这些 jar 包含在 build.properties
中。如果您引用其他插件,只需将它们添加到您的插件的依赖项中。
您可以使用 MANIFEST.MF/plugin.xml/build.properties 编辑器将它们添加到 MANIFEST.MF。
在编辑器 'Runtime' 选项卡上,将 jars 添加到 'Classpath' 条目(对于您的主要插件代码,还应该有一个“.”条目)。
在编辑器的 'Build' 选项卡上,选中要包含在插件中的所有 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
编辑器中的运行时选项卡:
构建选项卡:
我正在获取 Eclipse 插件:java.lang.NoClassDefFoundError for org/jongo/ResultHandler
我的源代码编译成功 添加必要的 jar files.I 已使用项目>构建路径添加这些 jar 作为 Eclipse 中的参考库。
现在的问题是这些外部 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。
创建插件时切勿将 jars 直接添加到构建路径。
您必须将所有 jar 包含在您的插件中(或作为其他插件)并设置 Bundle-Classpath
并将这些 jar 包含在 build.properties
中。如果您引用其他插件,只需将它们添加到您的插件的依赖项中。
您可以使用 MANIFEST.MF/plugin.xml/build.properties 编辑器将它们添加到 MANIFEST.MF。
在编辑器 'Runtime' 选项卡上,将 jars 添加到 'Classpath' 条目(对于您的主要插件代码,还应该有一个“.”条目)。
在编辑器的 'Build' 选项卡上,选中要包含在插件中的所有 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
编辑器中的运行时选项卡:
构建选项卡: