我对Java很陌生(但多年来有C#.NET经验)。
存在Java / JRE与C#/ .NET之间最重要的差异的比较吗?
在Java“解决方案”中发现了一种“奇怪”的行为。在我的工作区中有几个项目。其中一个软件包无法编译。但是这个包还包含其他项目没有问题的类。
所以在我看来,即使一个类没有在一个包中编译,该包中的其他类也可以被其他项目使用?
包是否与.NET中的程序集(.dll)相当?在.NET中,当一个类没有编译时,不会生成.dll。
对我来说另一件奇怪的事情是.class文件也会被检入源代码管理系统。也许这就是为什么可以使用从不可编译的包中分类的原因。检查.class文件来源控制是否真的有意义?
答案 0 :(得分:1)
我正在做相反的事情,学习C#并有一些java经验。我会说java中的包与.NET中生成的.dll文件略有不同。 java中的包被编译成单独的类文件。因此,如果一个java源文件没有在包中编译,您可以使用在该包中编译的其他类(只要您正在使用的其他类之一不需要编译的那个) )。我会说将.class文件签入源代码控制是没有意义的。我只想查看java源文件。
您可能希望查看程序包生成的文件夹结构,以便了解正在输出的内容。通常情况下,如果您的软件包是com.mycompany.myapp然后您将拥有com / mycompany / myapp的文件夹结构,并且在myapp文件夹中,您将看到类文件。我相信其他人可以提供更多细节,但我希望这可以帮助你。
答案 1 :(得分:1)
将.class文件检入源代码控制是否真的有意义?
一般来说,共识是源代码控制是针对源代码和编译过程的其他输入。有时您可能希望包含依赖项(例如第三方dll),但很少有理由包含您自己的输出文件。