簡體   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