2011-02-28 120 views

回答

11

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

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

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

+3

请注意,通常情况下,您会将类文件放入jar文件中,而不是Java文件。 – cHao 2011-02-28 05:19:18

+0

Java中包的强制性原因是将它们用作名称空间,以允许两个开发人员命名其类Hello,只要它们使用不同的包(或在同一应用程序中具有两个Parser类)。 Java提供规则来命名包(例如,基于DNS约定),并且不鼓励使用默认(未命名)包来防止类名冲突。 – mins 2014-05-09 16:53:43

-1

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

3

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

2

简而言之,JAR文件是一个物理文件,结构非常类似于zip文件,其中包含程序在执行时使用的文件。一个jar包 通常包括.class文件,类的可执行版本和其他资源,如图标,图片,语言特定的属性文件等。 (http://java.sun.com/docs/books/tutorial/jar/index.html)

软件包在接口上的Java教程跟踪和 包中定义如下:“一组相关类以及提供访问保护和名称空间管理的接口。“ (http://java.sun.com/docs/books/tutor...va/interpack/)。虽然准确,但我并没有发现这个定义本身确实给了你一个很好的包装是什么的感觉。有关更多信息,请转至引用页面,并在教程的该部分中阅读 。

相关问题