我想从另一个依赖于项目的eclipse插件项目中调用jar中的方法。但是eclipse无法解析jar中的类名。
我创建了com.plugin.main
和com.plugin.sub
项目。
com.plugin.sub
项目中,并通过首选项对话框添加了构建路径。com.plugin.sub project
中的MANIFEST.MF。com.plugin.sub
作为必需的插件。但是eclipse无法从com.plugin.main.actions.SampleAction解析jar WorkbookFactory
中的类名。为什么呢?
WorkbookFactory
的FQCN为org.apache.poi.ss.user.model.WorkbookFactory
。 com.plugin.main
中的MANIFEST.MF:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Main
Bundle-SymbolicName: com.plugin.main; singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: com.plugin.main.Activator
Bundle-Vendor: PLUGIN
Require-Bundle: com.plugin.sub;visibility:=reexport,
org.eclipse.ui,
org.eclipse.core.runtime
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
com.plugin.sub
中的MANIFEST.MF:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Sub
Bundle-SymbolicName: com.plugin.sub
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: com.plugin.sub.Activator
Bundle-Vendor: PLUGIN
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
Export-Package: org.apache.poi.ss.usermodel
Bundle-ClassPath: poi-ooxml-3.8-beta3-20110606.jar,
.
com.plugin.sub
中的build.properties:
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
poi-ooxml-3.8-beta3-20110606.jar
答案 0 :(得分:2)
试试这些:
在Manifest Editor
中打开项目的清单文件。转到Runtime
标签。在Class path
部分中,检查条目。如果不存在,请添加.
(表示当前文件夹)。如果存在.
条目,则将其移至顶部。保存编辑器并检查。
右键单击com.plugin.main
项目,然后转到“属性”。转到Java Build Path
。在右侧,转到Project
标签。然后添加com.plugin.sub
项目。
如果采用了第2点,那么请记住在eclipse之外导出和运行后测试应用程序。
答案 1 :(得分:1)
您可以通过“首选项对话框中的库”选项卡中的Add JARs
按钮添加jar。
然后,项目中的.class
文件将自动编辑,如下所示:
<classpath>
...
<classpathentry kind="lib" path="poi-ooxml-3.8-beta3-20110606.jar"/>
</classpath>
但添加的标记应具有exported
属性,如下所示:
<classpath>
...
<classpathentry exported="true" kind="lib" path="poi-ooxml-3.8-beta3-20110606.jar"/>
</classpath>
不会自动生成。您必须手动在Order and Export
标签中添加标记。
在eclipse中,您不应手动编辑Java Build Path。您应该使用Plug-in Manifest Editor,因为在您通过编辑器编辑数据时会自动编辑.class
。此外,build.properties
,plugin.xml
,MANIFEST.MF
也会自动正确编辑。
将jar添加到项目时,必须在Plug-in Manifest Editor的Runtime选项卡中使用Classpath部分。通过该部分添加广告时,classpathentry
文件中将添加export
带有.class
属性的标记。不仅如此,jar将作为二进制包含在build.properties中添加。