如何从Eclipse导出带有其他jar依赖的Java jar文件?

6
我正在尝试从Eclipse项目创建一个自包含的.jar文件。所谓“自包含”,是指将此项目的所有依赖项(即其他jar文件)都包含在生成的jar文件中。我想将导出的jar文件用作另一个项目的库。问题在于,我从依赖项中获取了一个NoClassDefFoundError类。我已尝试将所有依赖项打包到可运行的jar文件和“普通”jar文件中进行导出。但这两者都无法解决问题。
清单看起来像这样:
Manifest-Version: 1.0
Main-Class: com.path.to.MyMainClass
Class-Path: lib/resolver.jar lib/xercesImpl.jar lib/xml-apis.jar lib/Mac-Cocoa64/swt.jar  

这个 .classpath 文件看起来是这样的:

<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
    <classpathentry kind="lib" path="lib/resolver.jar"/>
    <classpathentry kind="lib" path="lib/xercesImpl.jar"/>
    <classpathentry kind="lib" path="lib/xml-apis.jar"/>
    <classpathentry kind="lib" path="lib/Mac-Cocoa64/swt.jar"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

缺失的类定义在SWT.jar文件中。 有任何想法出了问题或者需要采取哪些步骤才能成功地导出这个jar文件以便它可以被包含在其他地方?

干杯,

Martin


请查看以下链接:https://dev59.com/AGgu5IYBdhLWcg3w2ahm希望它能正常工作。 - bcfurtado
2个回答

13

这可能会对某些人有所帮助

1.从项目属性中选择导出

1.从项目属性中选择导出

2.选择可运行的Jar选项

2.选择可运行的Jar选项

3.完成JAR创建(在这里,您可以将所有依赖项打包到生成的jar文件中)

3.完成创建。


0
为了回答这个问题:最终,我们决定直接将依赖的JAR包包含在项目中,避免使用嵌套的JAR包。考虑使用Maven,但需要对我们项目的设置进行一些重大更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接