【问题标题】:exported Libraries handling in exported jars java在导出的 jar 中处理导出的库 java
【发布时间】:2016-12-15 14:34:09
【问题描述】:

我在 Eclipse 中有一个使用一堆 jar 的 java 项目。我想将类导出为可运行的 jar。当我导出项目时,在 jar 中提取 jar 库时,运行 jar 时出现错误. (线程“main”中的UncaughtExceptionHandler)

但是,当我将库提取为可运行 jar 之外的子文件夹时,它可以正常工作。

我怎样才能使项目工作在 jar 中提取的库而不是子文件夹中?

谢谢

【问题讨论】:

    标签: java eclipse jar


    【解决方案1】:

    Eclipse 可以选择将所需的库打包到生成的 JAR 中。如果这是应该解决您的问题的选择。

    Correct option

    【讨论】:

    • 这个选项使得生成的jar执行起来很慢,因为jar的数量有点大!
    【解决方案2】:

    如果我的理解正确,您将无法将程序导出为包含依赖库的Jar 文件。

    所以,解决方案是这样的:

    当您将项目导出为“可运行 jar”时(在项目上右键 -> 导出 -> 可运行 jar),您可以选择将所有依赖项打包到生成的 jar 中。它还有其他两种方式(见截图)来导出你的库,在决定你将使用哪种打包方法时要注意许可证。

    启动配置下拉列表中填充了包含public static void main(String[] args) 方法的类。运行 jar 时会启动选定的类。

    导出为可运行的 jar 使用构建路径上的依赖项(在项目上右键 -> 构建路径 -> 配置构建路径...)。当您导出为“常规”(不可运行)jar 时,您可以选择项目中的任何文件。 如果项目文件夹中有库,则可以包含它们,但不能包含外部依赖项,例如 maven。

    此外,还有另一个使用Gradle 的解决方案,它更简单、更强大,您可以轻松管理所有依赖项并做更多事情。 你可以阅读更多here

    【讨论】:

    • 你好。我知道如何将项目导出为可运行的 jar。我的问题是,当我选择提取所需的 jar 时它崩溃,当我使用复制到子文件夹时它工作正常。我不想将包使用到 jar 中,因为它使可执行文件非常慢因为库的数量有点大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多