【问题标题】:Including external jars permanently in NetBeans在 NetBeans 中永久包含外部 jar
【发布时间】:2015-02-19 12:32:23
【问题描述】:

我正在构建一个 Java Swing 应用程序。该项目需要一个名为 JCalender 的 jar 文件。我已将此添加到 Libraries 文件夹中,并且在 NetBeans 中的计算机上一切正常。但是当我在我的朋友 NetBeans 中打开同一个项目时,它无法识别这个库。我必须手动选择放置在项目 dist/lib 文件夹中的文件。如何避免这种情况?请帮忙!

【问题讨论】:

    标签: java swing jar desktop-application netbeans-8


    【解决方案1】:

    但是当我在我的朋友 NetBeans 中打开同一个项目时,它并没有 识别这个库。我必须手动选择放置的文件 在项目 dist/lib 文件夹中。如何避免这种情况?

    你不能避免这个,因为它实际上不是问题。要编译和运行项目,您需要访问开发过程中涉及的外部库,因此如果您在与您的计算机不同的计算机上打开 NetBeans 项目,您肯定需要解析对外部库的引用。据我所知,IDE 无法自动执行此操作。

    我不能给出特定的 lib 文件夹的相对路径吗 项目属性中某处的库?

    你可以试一试。恕我直言,如果真正的目标是与其他开发人员共享一个项目,那么我会改变策略。我会创建一个库(工具 -> 库)并告诉我的伙伴创建相同的库,包括库的类路径中的 JCalendar JAR 文件。我会在项目属性中包含这个库,最后我会使用 Git 或 SVN 等版本控制工具来共享项目。

    通过这样做,您的伙伴仍然需要包装在 NetBeans 库中的 JAR 文件的副本,但项目属性不会指向查找 JAR 文件的固定/相对路径,而是包含对给定库的引用.库本身将解析对 JAR 文件的依赖关系。如果您查看project.properties 文件,您会看到如下内容:

    javac.classpath=\
        ${file.reference.jcalendar-1.4.jar}
    

    但是如果你按照我的建议,那么你会看到这样的东西:

    javac.classpath=\
        ${libs.JCalendar.classpath}
    

    这里libs.JCalendar.classpath 将解决依赖关系,因此您的伙伴可以将实际的 JAR 文件放在他们喜欢的任何文件夹中,并且项目应该可以正常编译。

    另一种选择是使用 Maven 管理项目依赖项,但老实说,我不是 Maven 专家,所以我无法在这条道路上为您提供帮助。

    【讨论】:

    • 我不能在项目属性中的某处给出该特定库的 lib 文件夹的相对路径吗?
    【解决方案2】:

    您需要执行“清理并构建”,您的 jar 将位于 dist 文件夹中。它将包括外部罐子

    您可以阅读更多关于它的信息here

    【讨论】:

    • 是的,它就在那里……但是其他的 netbeans 不能自动识别它。每次在别处打开项目时,我都必须找到它。
    • 我认为您误解了这个问题。 OP 询问如何在不同计算机上打开同一个项目时自动解析外部库依赖项。不是在构建项目时如何包含外部库。略有不同。
    • @dic19 你是对的。您的回答应该被 OP 接受
    【解决方案3】:

    我认为您的问题是由于您提供了 jar 文件的绝对路径。 在文件选择器的写入端选择 jar 时,可以选择 相对路径和绝对路径,你应该点击绝对路径。

    【讨论】:

    • 默认选择绝对路径。相对路径也不能解决问题..感谢您的建议!
    【解决方案4】:

    我是 java 新手,但无论如何,我遇到了同样的问题并为我的项目找到了解决方案

    如果你在 Netbeans 中,这对你来说会很容易

    让你的项目名是ABC并且你所有的依赖jar文件都在 文件夹 MyResourceCollection

    现在我们需要永久导入这个文件夹下的所有jar,

    所以来自 Netbeans,

    1. 右键单击您的项目名称
    2. 转到属性
    3. 转到
    4. 在库页面中,检查“库文件夹”标签
    5. 您可以在标签右侧找到一个浏览按钮
    6. 点击浏览并选择MyResourceCollection文件夹
    7. 会出现一个新窗口,只需按Next-->Next--->Finish

    一切都完成了,现在通过将文件夹移动到不同的位置来检查自己

    【讨论】:

      猜你喜欢
      • 2016-08-28
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      • 2011-02-24
      相关资源
      最近更新 更多