これは「SCJP 模擬試験」の出題例です。
デフォルトのクラスパスを考えると:
/foo
そして、このディレクトリ構造:
foo | test | xcom |--A.class |--B.javaそして、これらの 2 つのファイル:
package xcom; public class A { } package xcom; public class B extends A { }B.java のコンパイルを許可するのはどれですか? (該当するものをすべて選択してください。)
A.現在のディレクトリを設定してから
xcom呼び出すjavac B.javaB.現在のディレクトリを設定してから
xcom呼び出すjavac -classpath . B.javaC.現在のディレクトリをテストしてから呼び出すように設定します
javac -classpath . xcom/B.javaD.現在のディレクトリをテストして呼び出すように設定します
javac -classpath xcom B.javaE.テストする現在のディレクトリを設定してから呼び出す
javac -classpath xcom:. B.java
答えは C です。そこでの演算子の使い方がわかりません.。説明してください。
本は言う:
を
B.javaコンパイルするには、コンパイラが最初に を見つけられる必要がありますB.java。見つかったらB.java、見つける必要がありますA.class。パッケージ内にある ためA.classxcomA.classxcom、ディレクトリから呼び出された場合、コンパイラは検出されません。-classpathは を探しているのではなく、必要B.javaなクラスB.java(この場合は) を探していることに注意してくださいA.class。
わかりません。両方のファイルが同じパッケージにある場合、コンパイラはなぜ A を見つけられないのでしょうか?