私はEclipseでいくつかのJavaコードに取り組んでいます。Adderコードは、Eclipseではパッケージに含まれていると呼ばれる単一のクラスに含まれていますorg.processing。クラスファイルの最初のものは行です
package org.processing
Q1) この行は正確に何をしているのですか?なぜそこにあるのか、それはどのような役割なのか。
コードはEclipseで正常に実行されますが、ワークスペースに移動すると、のsrc/org/processing/フォルダーに移動srcし、javac Adder.classを使用して実行しようとするとjava Adder、次のエラーが発生します。
java.lang.NoClassDefFoundError: Adder (wrong name: org/processing/Adder)
一方、srcからコンパイルする場合は
javac org/processing/Adder.java
srcを使用して実行することはできますjava org.processing.Adderが、処理ディレクトリ内からは実行できません。
Q2) これは、コンパイルが常にディレクトリ構造に関連していることを意味しますか?
最後に、 package org.processing最初から行を削除すると、ファイルのディレクトリ.class内からコンパイルして実行できるファイルになります。.class
Q3) なんでこんな感じなの?コード開発のためにディレクトリ構造を適用することは完全に理解できますが、バイトコードに入ると、これは少しやり過ぎのように見えます。これは、(どうやら)1つのダイレクタ(src)からのバイトコードしか実行できないためjava org.processing.Adderです。さて、私はここでポイントを逃していると確信しているので、誰かがそれが何であるかを指摘することができれば、それは素晴らしいことです。