【发布时间】:2016-12-15 14:34:09
【问题描述】:
我在 Eclipse 中有一个使用一堆 jar 的 java 项目。我想将类导出为可运行的 jar。当我导出项目时,在 jar 中提取 jar 库时,运行 jar 时出现错误. (线程“main”中的UncaughtExceptionHandler)
但是,当我将库提取为可运行 jar 之外的子文件夹时,它可以正常工作。
我怎样才能使项目工作在 jar 中提取的库而不是子文件夹中?
谢谢
【问题讨论】:
我在 Eclipse 中有一个使用一堆 jar 的 java 项目。我想将类导出为可运行的 jar。当我导出项目时,在 jar 中提取 jar 库时,运行 jar 时出现错误. (线程“main”中的UncaughtExceptionHandler)
但是,当我将库提取为可运行 jar 之外的子文件夹时,它可以正常工作。
我怎样才能使项目工作在 jar 中提取的库而不是子文件夹中?
谢谢
【问题讨论】:
Eclipse 可以选择将所需的库打包到生成的 JAR 中。如果这是应该解决您的问题的选择。
【讨论】:
如果我的理解正确,您将无法将程序导出为包含依赖库的Jar 文件。
所以,解决方案是这样的:
当您将项目导出为“可运行 jar”时(在项目上右键 -> 导出 -> 可运行 jar),您可以选择将所有依赖项打包到生成的 jar 中。它还有其他两种方式(见截图)来导出你的库,在决定你将使用哪种打包方法时要注意许可证。
启动配置下拉列表中填充了包含public static void main(String[] args) 方法的类。运行 jar 时会启动选定的类。
导出为可运行的 jar 使用构建路径上的依赖项(在项目上右键 -> 构建路径 -> 配置构建路径...)。当您导出为“常规”(不可运行)jar 时,您可以选择项目中的任何文件。 如果项目文件夹中有库,则可以包含它们,但不能包含外部依赖项,例如 maven。
此外,还有另一个使用Gradle 的解决方案,它更简单、更强大,您可以轻松管理所有依赖项并做更多事情。
你可以阅读更多here。
【讨论】: