在 NetBeans 中永久包含外部 jar

Including external jars permanently in NetBeans

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

您需要执行 "clean and build" 并且您的 jar 将位于 dist 文件夹中。它将包括外部罐子

您可以阅读更多相关信息here

But when i open the same project in my friends NetBeans, it doesn't recognizes this library. I've to manually select the file placed inside the projects dist/lib folder. How to avoid this?

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

Can't i give the relative path to the lib folder for that specific library somewhere in project properties?

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

通过这样做,您的伙伴仍然需要包装在 NetBeans 库中的 JAR 文件的副本,但项目属性不会指向寻找 JAR 文件的 fixed/relative 路径,但会包含一个引用到给定的图书馆。库本身将解析对 JAR 文件的依赖性。如果您查看 project.properties 文件,您会看到类似这样的内容:

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

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

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

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

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

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

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

如果您使用的是 Netbeans,这对您来说会很容易

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

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

因此来自 Netbeans,

  1. 右键单击您的项目名称
  2. 转到属性
  3. 前往图书馆
  4. 在图书馆页面中,检查 "libraries folder" 标签
  5. 您可以在标签的右侧找到一个浏览按钮
  6. 单击 浏览 和 select MyResourceCollection 文件夹
  7. 一个新的window会来,只需按下一步-->下一步--->完成

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