独立程序包

时间:2016-09-01 14:14:23

标签: java packages

我是Java的新手,我知道包的功能。您可以使用它们将Java应用程序的多个文件一起排序。但是,如果您的应用程序只有一个类,那么将它放在一个包中是否标准?这样做的优点和缺点是什么?

编辑:我将此单个类打包到.jar文件之后。

4 个答案:

答案 0 :(得分:3)

来自oracle documentation,很明显

  

jar开发的主要动机是Java applets   和他们必需的组件(.class文件,图像和声音)可以   在单个HTTP事务中下载到浏览器,而不是   为每件作品打开一个新的连接。这大大改善了   可以将applet加载到网页上并开始的速度   运行。 JAR格式还支持压缩,这会减少   文件的大小,并进一步改善下载时间。   此外,JAR文件中的各个条目可以进行数字签名   由applet作者验证其来源。

来自Package Documentation of Oracle

  

对于小程序和休闲开发,包可以是未命名的   (§7.4.2)或者有一个简单的名称,但是如果要广泛使用代码   应使用合格的选择分配独特的包名   名。这可以防止在其他情况下可能发生的冲突   两个开发组碰巧选择了相同的包名和   这些软件包后来被用在一个程序中。

答案 1 :(得分:2)

这实际上取决于您编译和运行程序的方式,但最终还是您的选择

让我们看一下构建程序的一些不同方法。

1。使用javac

编译文件

如果您使用javac编译文件,则包无关紧要。它将生成与文件相同目录.class文件。

2。编译为JAR文件

如果要编译为JAR文件,则.class文件将位于程序包名称中指定的目录中。虽然这不会影响程序的运行方式

在这两种情况下,我都说单个文件程序的包标识符是不必要的。但是,有一个例外。

例外......

如果你计划在更大的程序中使用该课程,那么添加相关的包名称将是必不可少的。

这是因为它会...

  1. 当默认包中的其他类具有相同名称时,防止名称冲突

  2. 帮助人们了解您的课程是否他们想要的课程

  3. 你能想象如果20个不同的开发人员在默认包中创建了一个List类,并且不知何故他们都进入了一个项目吗?这将是混乱!我如何选择正确的List

    因此,在编写其他人将在自己的项目中使用的类的情况下,您应该肯定使用包名。

答案 2 :(得分:0)

如果它只有一个类并且没有任何依赖项或资源文件,那么它可能是非生产应用程序。因此,完全取决于您如何启动应用程序。

如果您想分发您的应用 - 使其符合标准,请将其放入jar中,发布到m​​aven ...

答案 3 :(得分:0)

Java类加载器通过连接包和类名来标识您的类。因此,如果不使用包,名称冲突的概率会更高。即使您的应用只包含一个类,您也可以明确地引用其他许多类。

同时考虑到你只能用一个类构建非常简单的应用程序,所以这个条件可能不会永远存在。

除此之外,没有包的类是边框情况,因此您可能会发现许多不能使用它的工具。(我在Eclipse的Web服务构建器工具中遇到此问题)。

简而言之,请使用包裹。它不会给你带来任何麻烦,并且(至少可能)会为你节省很多。