Java中的jar文件和库的区别

19

NetBeans允许程序员添加一个library和一个jar文件。

一个jar文件和一个library有什么区别?Library是否类似于Windows中的GAC程序集

有类似的问题,但它们过于具体,我无法理解两者之间的区别。


我不是Netbeans的用户,但如果它给你加载JAR或库的选项,那么该库可能指的是本地库(即dll)。Java也可以通过JNI执行本机代码,一些Java应用程序需要这些库在项目中可用才能正常工作。 - Edwin Dalorzo
可能是重复的问题 https://dev59.com/QW855IYBdhLWcg3wUSkW - Premraj
5个回答

21

简单来说:库是一组jar文件的集合。

你可以创建一个名为java-ee的全局库,其中包含所有与Java EE相关的jar文件。然后你可以在不同的项目中使用这个全局库。这样管理它们会更简单,而且在新项目中添加它们也很容易。


3
一个库还可以包含用于调试的源代码和IDE文档工具提示中的Javadocs。 - Eelke
2
一个库可以包含单个jar,但这并不是一个好的解释。 - Juvanis
1
所以 jar 文件不能包含 jar 文件,但是 library 可以...这是区别吗?如果听起来有点滑稽,请原谅我,因为我是 Java 新手。 - user1825817
1
理论上,一个库也可以只包含一个JAR文件。但这并不是库的设计初衷。 - Deepak Singhal
@cSharper 理论上,一个jar文件可以包含另一个jar文件,因为jar文件也像zip文件一样。但是将jar文件放入另一个jar文件中并没有任何帮助;因为嵌入式jar内部的类将不可用。 - Deepak Singhal
显示剩余5条评论

5

JAR(Java ARchive)在C#/.net世界中的功能类似于程序集。它是一组java类、清单和可选的其他资源,例如属性文件。

库是一个更抽象的概念,在java中,库通常被打包为JAR或一组JAR。


1
如果理解得很好:一个库就是简单地将类分组的文件夹。例如在JDK中,存在一个库,其中存储了一组类。
如果没有错误,.jar文件是以.class格式编译的一组类,并由Java创建者创建,以便程序可以独立于操作系统运行;这意味着在JVM中,您可以在Linux、Windows等操作系统上以.jar格式运行应用程序,而无需为各种操作系统重新编码您的应用程序。

jar 也可以将类组合在一起..那么它和其他的有什么区别呢? - user1825817

1

一个jar文件是一个zip归档文件,其中包含了Java类文件等其他文件。Netbeans库包含项目所需的资源,包括jar文件。


但是这些资源也可以在jar文件中,对吧?如果听起来有点滑稽,请原谅我,我是Java世界的新手。 - user1825817
1
是的,你说得对。我试图简化这个问题。实际上,一个jar文件只是一个拥有不同扩展名的zip文件。jar文件可以包含任何你放在里面的东西。Java 喜欢以特定的格式组织文件。库只是Netbeans(和其他IDE)创建的“抽象”,表示一系列jar文件(或更通用的资源)。通常,这些都会存储在项目的配置文件中,例如xml文件。库的概念不仅适用于Java或SDK,而是特定于IDE。 - John Ballard

1

这篇文章解释了一切...

它指出:

Java的库通常被称为类库。然而,Java将类库称为包。


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