0

私は Java を初めて使用します (ただし、C#.NET の経験は長年あります)。

Java/JRE と C#/.NET の最も重要な相違点の比較はありますか?

Java の「ソリューション」で「奇妙な」動作を発見しました。私のワークスペースにいくつかのプロジェクトがあります。パッケージの 1 つがコンパイルされません。ただし、このパッケージには、他のプロジェクトで問題なく使用されるクラスも含まれています。

クラスがパッケージでコンパイルされていない場合でも、そのパッケージ内の他のクラスを他のプロジェクトで使用できるように思えますか?

パッケージは .NET のアセンブリ (.dll) に相当しますか? .NET では、クラスがコンパイルされない場合、.dll は生成されません。

私にとってもう 1 つの奇妙な点は、.class ファイルもソース管理システムにチェックインされることです。おそらくこれが、コンパイル不可能なパッケージからクラス化されたものを使用できる理由です。.class ファイルをソース管理にチェックインすることは本当に理にかなっていますか?

4

2 に答える 2

1

.class ファイルをソース管理にチェックインすることは本当に理にかなっていますか?

一般に、ソース管理はソース コードおよびコンパイル プロセスへのその他の入力用であるというのがコンセンサスです。依存関係 (サードパーティの dll など) を含めたい場合もありますが、独自の出力ファイルを含める正当な理由はめったにありません。

于 2013-03-15T18:36:54.580 に答える
1

私は逆のことをしており、C# を学んでおり、Java の経験があります。Java のパッケージは、.NET で生成された .dll ファイルとは少し異なります。Java のパッケージは、個々のクラス ファイルにコンパイルされます。そのため、1 つの Java ソース ファイルがパッケージでコンパイルされない場合、そのパッケージでコンパイルされた他のクラスを使用できます (ただし、コンパイルされなかったクラスが、使用している他のクラスのいずれかによって必要とされていない場合に限ります)。 )。.class ファイルをソース管理にチェックインしても意味がありません。Javaソースファイルをチェックインするだけです。

パッケージによって生成されたフォルダー構造を確認すると、何が出力されているかがわかります。通常、パッケージが com.mycompany.myapp の場合は、com/mycompany/myapp のフォルダー構造があり、myapp フォルダー内にクラス ファイルが表示されます。他の方が詳しく教えてくださると思いますが、参考になれば幸いです。

于 2013-03-15T12:34:58.993 に答える