据说一个Java包可能包含类,接口,枚举等,但是我一直在网上寻找,但仍然找不到我想要的东西……当我看到包信息时它们还包含类的文件...我的想法是,程序包在同一文件中定义类,接口等,但是类的代码应该在单独的类文件中,不是吗?
我应该在为Eclipse创建的每个类中命名相同的程序包,以将它们全部放在同一个程序包下,而不需要程序包信息文件吗?另一方面,Eclipse是否真的有必要为每个包创建一个treedir?我可以只在包文件中定义类的位置吗?包裹信息文件的内容是什么?
也有人说,当您要使用软件包时,它应该采用.jar格式...是真的吗?
我想做的是构建一个通用的自定义程序包,以便在多个项目中使用它,但是我希望将其链接而不是复制到每个项目中,所以我只修改一次代码... Eclipse?
想法1: +包含所有类的定义和位置的包文件 +一堆按主题分布在不同文件夹中的故事 + eclipse将与链接的软件包文件一起使用,在包含该软件包中引用的类的文件夹树中创建一个软件包。
想法2: +没有包文件 +每个班级都会通过包含包名来说明哪个包在其中 + eclipse将与一堆引用同一包的类一起工作,因此它就是在项目树中创建的。
更新20180904:
我想将所有类存储在单独的文件夹中,例如“ ... / classes / *。java”
我计划在Eclipse环境允许的情况下链接某些类,例如“ ... / src / com.dataproc / class1.java ...”
我想编译该软件包,并将其准备好用于我正在开发的项目以及特殊目录中的其他项目,例如“ ... / mylib / common / *。jar
当我说“同时”时,是因为我想在同一环境中为我的包和项目创建类。
您可能会想,我仍然是使用Java和Eclipse的新手,但是,嘿,渴望学习!我必须说,我已经审查了上述Oracle info about packages,但是对于如何进行操作,我仍然没有一个明确的想法。这对我来说太基础了,所以我不明白是否必须在每个类java文件中声明该包或在某个package-info.java文件中声明我想要的所有类,我知道我必须使用“在我的项目中导入mypackagename。*“ ...
我们非常感谢您的帮助或方向。
更新20180926:此问题已解决from this related question
答案 0 :(得分:1)
首先,我尝试阐明 java包, package-info.java 文件和 JAR 文件的含义。
Java软件包的概念独立于您用于开发的IDE。来自Oracle Documentation - Creating and Using Packages:一个 Java包是一组相关类型的组合,提供访问保护和名称空间管理。请注意,类型是指类,接口,枚举和注释类型。
要点是:同一包中的类可以访问彼此的包私有成员和受保护成员。 这是在组织程序包中的源代码时必须考虑的关键因素。
package-info.java 文件的主要目的是为应用到程序包的注释创建一个空间,除了为程序包级javadoc提供一个宿主。 [Joseph D. Darcy's Oracle Weblog]
JAR代表 Java ARchive 。这是一种基于流行的ZIP文件格式的文件格式,用于将许多文件聚合到一个文件中。
因此 JAR 文件格式是用于将许多Java类文件以及相关的元数据和资源(文本,图像等)聚合到一个文件中的主要标准,该文件用于分发 。
我想做的是构建一个通用的自定义程序包,以便在多个项目中使用它,但是我希望将其链接而不是复制到每个项目中,所以我只修改一次代码... Eclipse?
如果要正确执行此操作,则必须按照以下步骤构造项目: