JAR和包之间有什么区别?

JAR文件和包之间有什么区别吗?

包是一种逻辑组织类的方法。 例如,您可以声明package com.foo; 在每个源文件的顶部,它们足够相关,可以一起驻留在com.foo包中。 Java编译器和运行时还希望您将这些文件放在路径com/foo/ ,其中此路径的根目录是类路径中的目录或JAR。

JAR文件允许您物理组织类。 您可以获取任何Java文件(及其父目录,尊重上面讨论的目录结构)并将它们存储在JAR文件中。 JAR文件可能包含属于多个包的文件,多个JAR文件可能包含属于同一个包的文件。 因此,JAR文件很大程度上是将多个类文件存储在单个物理文件中的一种方法。

JAR文件还有一些其他特殊function。 例如,您可以在JAR清单中指定Main-Class值,以指定哪个类是应用程序的入口点,并且可以将包密封在JAR文件中,“这意味着必须存档该包中定义的所有类在同一个JAR文件中。“

包是Java中用于将类组织到命名空间中的机制。 jar是一个Java ARchive,一个将多个Java类聚合为一个的文件。

简而言之,JAR文件是一个物理文件,其结构很像zip文件,其中包含程序在执行时使用的文件。 jar通常包括.class文件,类的可执行版本以及其他资源,如图标,图片,特定于语言的属性文件等.Java Tutorial描述了jar,以及如何创建/管理它们。 (http://java.sun.com/docs/books/tutorial/jar/index.html)

在接口和包的Java Tutorial路径中,包的定义如下:“提供访问保护和命名空间管理的相关类和接口的集合。” (http://java.sun.com/docs/books/tutor…va/interpack/)。 虽然准确,但我发现这个定义本身并没有真正让你很好地了解一个包是什么。 有关更多信息,请转到引用的页面并阅读本教程的该部分。

在classpath jar和package(目录)中是相同的结构。 只是jar在计算机之间移动比在目录中更有用。