繁体   English   中英

Java包不能编译,但该包中的某些类可以被其他项目使用

[英]Java package does not compile but some classes in that package can be used by other projects

我是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),但很少有理由包含您自己的输出文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM