の違いをclasspathは、sourcepathオプションのjavac
-
19-09-2019 - |
質問
読んだ太陽の書類とのポスタックオーバーフローがまだ混乱についてのJavaコンパイラオプション -cp
や -sourcepath
.
うえってこのディレクトリ構造
c:\Java\project1\src (where the Java source files are)
c:\Java\project1\bin (where the Java class files will be or already are)
そうも言ってソースファイル MainClass.java
パッケージ com.mypackage
, このディレクトリ構造でokのフォルダにまとめた。
私の project1 ディレクトリに実行します:
javac -d bin -sourcepath src src/com/mypackage/MainClass.java
または
javac -d bin -classpath src src/com/mypackage/MainClass.java
私も同じ結果が得られます。冗長モードは、検索パスのためのソースファイルは src
ました。
この場合も、誰でも助けてくれ、具体的なれます。
解決
-classpath classpath
CLASSPATH環境変数のユーザクラスパスを上書きし、ユーザクラスパスを設定します。どちらもCLASSPATHまたは-classpathが指定されている場合、ユーザクラスパスは現在のディレクトリになります。
-sourcepathオプションが指定されていない場合は、、ユーザクラスパスは、ソースファイルと同様にクラスファイルが検索されます。
-sourcepath sourcepath
クラスまたはインタフェースの定義を検索するソースコードパスを指定します。 (;)ユーザクラスパスと同様に、ソースパスのエントリはセミコロンで区切られており、ディレクトリ、JARアーカイブ、またはZIPアーカイブすることができます。パッケージが使用されている場合は、ディレクトリまたはアーカイブ内のローカルパス名がパッケージ名を反映する必要があります。
そのソースが見つかった場合、クラスパスで見つかったクラスは自動再コンパイルの対象であることに留意されたいです。
他のヒント
- sourcepathが根源的なヘルプオーサリング-ツールをコンパイル
- classpathでを含むコードもライブラリに必要なもの
CLASSPATHは、コンパイラとそれが必要と.classファイルを探す場所をクラスローダに指示します。
SOURCEPATHは、私はあまり使用しないものです。私は通常、現在のディレクトリがソースパスであるため、それは、オプションのだと信じています。 CLASSPATHではありません。
- クラスパスが検索されたクラス.クラス)ファイル
- sourcepathが検索されたソース(.java)ファイル(.a.k.クラスaまたはインタフェース 定義)
ただし、sourcepathが設定されていないクラスパスで検索の両方がクラスファイルのソースファイルです。
これを踏まえて、できるものと考えていくも簡単に利用でclasspathとを避け、sourcepathます。
利用を必要としている方の両方のクラスパスは、sourcepathているから不思議なディレクトリです。例えば、あるフォルダーを含むソースファイルおよびクラスファイルがしたいのソースファイルを検索します。