Java包不能编译,但是包中的一些类可以被其他项目使用
本文关键字:项目 其他 包中 不能 包不能 编译 Java | 更新日期: 2023-09-27 18:04:08
我对Java很陌生(但有c#)。. NET经验)。
是否存在Java/JRE和c#/.NET之间最重要的区别的比较?
在Java"解决方案"中发现了一个"奇怪"的行为。在我的工作空间里有几个项目。其中一个包无法编译。但是这个包也包含一些类,这些类可以被其他项目毫无问题地使用。
所以在我看来,即使一个类没有在包中编译,该包中的其他类也可以被其他项目使用?
包是否可与。net中的程序集(.dll)相比?在。net中,当一个类没有编译时,不会生成。dll。
对我来说另一件奇怪的事情是。class文件也被检入到源代码控制系统中。也许这就是为什么可以使用来自不可编译包的类的原因。检入.class文件到源代码控制真的有意义吗?
我正在做相反的事情,学习c#并有一些java经验。我想说java中的包与。net中生成的。dll文件有一点不同。java中的包被编译成单独的类文件。因此,如果一个java源文件没有在包中编译,您可以使用在该包中编译过的其他类(只要您正在使用的其他类之一不需要未编译的那个类)。我想说,将.class文件签入源代码控制是没有意义的。我只签入java源文件。
您可能想要查看由包生成的文件夹结构,这将使您了解正在输出的内容。通常它是这样工作的,如果你的包是com.mycompany.myapp,那么你将有一个文件夹结构为com/mycompany/myapp,在myapp文件夹中你将看到类文件。我相信其他人可以提供更多的细节,但我希望这对你有所帮助。
检查.class文件到源代码控制真的有意义吗?
一般来说,共识是源代码控制是针对源代码和编译过程的其他输入。有时候你可能想要包含一个依赖项(例如第三方dll),但是很少有好的理由包含你自己的输出文件。