c# - Java包无法编译,但该包中的某些类可以被其他项目使用

标签 c# java

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

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

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

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

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

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

最佳答案

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

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

关于c# - Java包无法编译,但该包中的某些类可以被其他项目使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15432509/

相关文章:

c# - 序列化 .net 对象并省略文档类型?

c# - 什么是适用于表单繁重的 Web 应用程序的良好 C# PDF 库?

java - 无法使用 Java 8 运行 Spring 4 和 Tomcat 8

java - 在 LibGdx 中绘制网格线的健康方法

java - 强制调用基类方法

java - 使用 Java native 库在 HDF5 中编写锯齿状数组

c# - Fluent nhibernate 一对多

c# - 无法在我的解决方案中添加来自新项目的新引用

c# - 部署到Minikube时出现ErrImageNeverPull

java - 使用 Android 应用程序去扭曲鱼眼图像