
現在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オプションで存在しないディレクトリが作成されるには、何かしらの条件が必要なのでしょうか。
No.2ベストアンサー
- 回答日時:
Javaのバージョンによって異なるわ。
その問題集が対象にしているJavaのバージョンが何かね。
Java1.4以前だと自動で作成したのよ。
Java5以降は作成しなくなったわ。
この回答への補足
回答ありがとうございます。問題集は比較的新しく(恐らく現時点で最新?)JavaSE6のものなので、お話から推測するに作成されないはずだと思うのですが…
補足日時:2011/02/24 00:57回答の締めが遅くなって申し訳ありません。出版社から参考書の回答が誤っているとの返答がきました。皆様のご指摘通りでした。お力添えありがとうございました。
No.3
- 回答日時:
・・・
問題集の回答が間違っていることって
たまにあるわよね(遠い目
出版元に問い合わせてみてはどうかしら?
もし間違いだったら図書券くらいもらえるかも?
どうもaskaaskaさんとTacosanさんのお話を聞く限りではその可能性も十分に考えられる気がしてきました。
アドバイス通り、今出版元に問い合わせのメールを送りました。
問い合わせのた結果が帰ってきましたら、「補足」欄にてご報告させてもらいます。
No.1
- 回答日時:
ちょっと調べた限りでは, あなたの理解で正解です. 少なくとも JDK 6 の javac では「自動的に作ることはしない」ということになっています. マニュアルにも
The directory must already exist; javac will not create it.
と書かれています.
ただし, 過去のあるバージョンにおいて「勝手に作ってしまう」という現象も報告されています (がこれは解消されているはず).
その「問題と解答」をだれが作ったかというのも問題だけどね.
ご回答ありがとうございます。
この問題は某ojc-p問題集に載っていたのですが、同じような構成でjavaファイルを作成、コンパイルしても再現できず、かといって本の発行元webサイトで当該書籍のページを見ても訂正情報がなく、どういうことなのか理解に苦しんでいる状況です。
念のためもう少しだけ他の方の回答を待ってみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- PHP ファイルアップロードに関してのセキュリティについてアドバイスお願い致します 1 2023/08/20 00:25
- UNIX・Linux JSLinuxについて。 Linuxのこの手順のプログラミングは合っているでしょうか。 ①ホームディ 2 2022/06/20 15:33
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
- UNIX・Linux Linuxについて質問です。 シェルスクリプト名をfind.shとして、以下の条件をすべて満たすファ 1 2023/02/03 03:50
- Windows 10 指定したファイルを任意の範囲のディレクトリ内に上書き保存したい 1 2022/11/24 10:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSP/サーブレットって言語なん...
-
普段、importするクラスはどこ...
-
Tomcat+Axis のサンプルで
-
教えていただけないでしょうか
-
コンパネのJava Plug-inのアイ...
-
Javaアプレットについての質問です
-
JAVAを使ってホームページ...
-
Appletで入力された文字列をJSP...
-
Rhinoの実行時のクラスパス
-
サーブレットが実行できない
-
appletviewerについて
-
Warファイルの解凍について質問...
-
Eclipseでの実行ファイル出力
-
classファイルが作成されない
-
Javaアプレットの動作テスト(E...
-
import javax.el.*;について
-
jarダブルクリックで実行できま...
-
javaファイルから他のツールを操作
-
eclipseのコンパイル
-
現在、Javaの開発環境を整えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipse・プロジェクトで、フォ...
-
classファイルについて
-
SVFの設定について:クラスパス...
-
javaクラスファイルをEclipseで...
-
Eclipse「リフレッシュ」と「ク...
-
eclipse でclassesフォルダーが...
-
earファイルを展開する方法
-
EclipseでHTTP404エラーが出る。
-
java クラスファイルとソースコ...
-
jdbcドライバのjarファイルにク...
-
【Eclipse】パッケージ・エクス...
-
「メイン・マニフェスト属性が...
-
「削除するか、クラスパスの正...
-
「main メソッドを持つクラスが...
-
ResourceBundleクラスの使い方
-
『ClassNotFoundException: org...
-
プログラム実行の際に、「ソー...
-
VisualStudioでC++クラスを追加...
-
EclipseでのJSP・Servlet開発に...
-
サーバから落としてきたWebアプ...
おすすめ情報