こんにちは、次のディレクトリ構造があります...
ターミナルでこれを入力します: javac -d bin src/com/elharo/math/Fraction.java
Fraction.class ファイルは、bin/ ではなく bin/com/elharo/math に配置されます。
なぜコンパイラがファイルをそこに置いたのか疑問に思いました。ソースファイルをコンパイルすると、それがパラレル/ミラービンディレクトリに移動するように、ソースとビンを用意するのがポイントですか?
こんにちは、次のディレクトリ構造があります...
ターミナルでこれを入力します: javac -d bin src/com/elharo/math/Fraction.java
Fraction.class ファイルは、bin/ ではなく bin/com/elharo/math に配置されます。
なぜコンパイラがファイルをそこに置いたのか疑問に思いました。ソースファイルをコンパイルすると、それがパラレル/ミラービンディレクトリに移動するように、ソースとビンを用意するのがポイントですか?
出力パスは、Java ソース ファイルで定義する必要があるパブリック クラスのパッケージ名とクラス名から計算されます (ちなみに、ファイル名から ".java" を引いたものと一致する必要があります)。-d オプションのディレクトリからの相対パス、または現在のディレクトリからの相対パスになります。
これは予想通りです。 /com/elharo/math
クラスが存在するパッケージです。クラスをこのディレクトリから取り出してビンに入れると、noclassdeferror が発生します。