アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在ojc-p(旧sjc-p)の資格取得に向けて勉強をしています。
javacコマンドの<-d>オプションに関して、以下のような問題があり、回答に納得がいかないため、ご教授頂きたいと思います。

-----------以下、問題-----------
カレントディレクトリをprojectとしたときに、Fooクラスを以下のコマンドでコンパイルした。この時の説明として正しいものを選びなさい。
【ディレクトリ階層】
project
 └src
   └Foo.java

【実行コマンド】
javac -d build src/Foo.java

【ソースコード】
1. package x.y.z;
2.
3. public class Foo{
4.   // more code here
5. }

【選択肢】
A) buildディレクトリが存在していないため、コンパイルエラーになる
B) projectディレクトリいかにbuild/Foo.classファイルが作成される
C) projectディレクトリ以下にbuild/x/y/zFoo.classファイルが作成される
D) srcディレクトリいかにbuild/Foo.classファイルが作成される
E) srcディレクトリ以下にbuild/x/y/z/Foo.classファイルが作成される
-----------ここまで-----------

自分の考えでは、-dに指定されたbuildディレクトリが存在していないためコンパイルが通らない、つまり、回答はAであると考えていたのですが、実際の回答は「C」でした。

同問題の解説を見ると、「-dオプションで引数に指定したディレクトリが存在しない場合には、自動的にそのディレクトリを作成します」とあります。

自分の環境では、-dオプションの引数に存在しないディレクトリ名を指定すると、いくらやっても「ディレクトリがありません」と表示されてしまいます。

-dオプションで存在しないディレクトリが作成されるには、何かしらの条件が必要なのでしょうか。

A 回答 (3件)

Javaのバージョンによって異なるわ。


その問題集が対象にしているJavaのバージョンが何かね。
Java1.4以前だと自動で作成したのよ。
Java5以降は作成しなくなったわ。

この回答への補足

回答ありがとうございます。問題集は比較的新しく(恐らく現時点で最新?)JavaSE6のものなので、お話から推測するに作成されないはずだと思うのですが…

補足日時:2011/02/24 00:57
    • good
    • 1
この回答へのお礼

回答の締めが遅くなって申し訳ありません。出版社から参考書の回答が誤っているとの返答がきました。皆様のご指摘通りでした。お力添えありがとうございました。

お礼日時:2011/05/26 01:17

・・・


問題集の回答が間違っていることって
たまにあるわよね(遠い目

出版元に問い合わせてみてはどうかしら?
もし間違いだったら図書券くらいもらえるかも?
    • good
    • 0
この回答へのお礼

どうもaskaaskaさんとTacosanさんのお話を聞く限りではその可能性も十分に考えられる気がしてきました。
アドバイス通り、今出版元に問い合わせのメールを送りました。
問い合わせのた結果が帰ってきましたら、「補足」欄にてご報告させてもらいます。

お礼日時:2011/02/25 01:42

ちょっと調べた限りでは, あなたの理解で正解です. 少なくとも JDK 6 の javac では「自動的に作ることはしない」ということになっています. マニュアルにも


The directory must already exist; javac will not create it.
と書かれています.

ただし, 過去のあるバージョンにおいて「勝手に作ってしまう」という現象も報告されています (がこれは解消されているはず).

その「問題と解答」をだれが作ったかというのも問題だけどね.
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
この問題は某ojc-p問題集に載っていたのですが、同じような構成でjavaファイルを作成、コンパイルしても再現できず、かといって本の発行元webサイトで当該書籍のページを見ても訂正情報がなく、どういうことなのか理解に苦しんでいる状況です。
念のためもう少しだけ他の方の回答を待ってみたいと思います。

お礼日時:2011/02/20 18:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!