JAR和包之间有什么区别?

时间:2011-02-28 05:03:23

标签: java jar packages

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

4 个答案:

答案 0 :(得分:14)

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

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

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

答案 1 :(得分:4)

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:-2)

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