0

我对 Java 很陌生(但有多年的 C#.NET 经验)。

是否存在 Java/JRE 和 C#/.NET 之间最重要差异的比较?

在 Java“解决方案”中发现了“奇怪”行为。我的工作区中有几个项目。其中一个包无法编译。但是这个包还包含其他项目使用的类,没有问题。

所以在我看来,即使一个类没有在包中编译,该包中的其他类也可以被其他项目使用?

包是否可以与 .NET 中的程序集 (.dll) 相媲美?在 .NET 中,当类无法编译时,不会生成 .dll。

对我来说另一件奇怪的事情是 .class 文件也被检入到源代码控制系统中。也许这就是为什么可以使用从不可编译包中分类的原因。将 .class 文件签入源代码管理真的有意义吗?

4

2 回答 2

1

Does it really make sense checking in .class files to source control?

In general the consensus is that source control is for source code and other inputs to the compilation process. Sometimes you might want to include a dependency (e.g. a 3rd party dll), but there's rarely a good reason to include your own output files.

于 2013-03-15T18:36:54.580 回答
1

我正在做相反的事情,学习 C# 并有一些 java 经验。我会说 java 中的包与 .NET 中生成的 .dll 文件有点不同。java中的包被编译成单独的类文件。因此,如果一个 java 源文件没有在包中编译,您可以使用在该包中编译的其他类(只要您正在使用的其他类之一不需要未编译的类)。我会说将 .class 文件签入源代码管理是没有意义的。我只想签入java源文件。

您可能想查看包生成的文件夹结构,这将使您了解正在输出的内容。通常,如果您的包是 com.mycompany.myapp,则它的工作原理是这样的,那么您将拥有 com/mycompany/myapp 的文件夹结构,并且在 myapp 文件夹中,您将看到类文件。我相信其他人可以提供更多详细信息,但我希望这对您有所帮助。

于 2013-03-15T12:34:58.993 回答