- - PR -
javacでEclipseのソースフォルダをコンパイルするには?
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-10-31 10:54
質問させてください。
WindowsXPのEclipse3でJavaプロジェクトを作成し、その中にソースフォルダを作成し、以下のようにソースを作成しました。 ====================== src └ packageA ├ MyClassA1.java ├ MyClassA2.java └ packageB ├ MyClassB1.java ├ MyClassB2.java └ packageC ├ MyClassC1.java └ MyClassC2.java ====================== なお、各クラスには継承関係はないものとします。 これらをコマンドプロンプト上のjavacでコンパイルしようとする場合は、以下のようにコンパイルしなくてはならいなのでしょうか? ====================== javac src¥packageA¥*.java javac src¥packageA¥packageB¥*.java javac src¥packageA¥packageB¥packageC¥*.java ====================== (↑¥は全角で記入しておりますが、実際は半角を使用しております) もしも1回のjavacコマンドの実行で全てのソースをコンパイルする方法がございましたら、ご教授いただけると幸いです。 | ||||
|
投稿日時: 2008-10-31 13:14
コマンドプロンプトから複数のJavaソースをコンパイルするなら、
Javacを直接呼ぶよりも、ビルドツールantを使うのがお勧めですよ。 | ||||
|
投稿日時: 2008-10-31 13:45
やんちさん、ご回答ありがとうございます。
たしかに、antを使用すれば上記のことはできますね。 ただ今回はjavacで実現できないかどうか知りたかったので、質問させていただきました。 | ||||
|
投稿日時: 2008-10-31 14:55
公式のドキュメントをまず読みましょう。
コマンド行引数ファイルという機能についての説明が書いてありますよ。 | ||||
|
投稿日時: 2008-10-31 15:24
nagiseさん、ご回答ありがとうございます。
公式ドキュメント、拝見いたしました。 確かに、コマンド行引数ファイルを使用すれば、1回のjavacコマンドで済みますね。 ただ、この方法だとソースフォルダ内のソースファイルの位置を把握して、 事前にコマンド行引数ファイルを作成しておく必要がありますね。 できれば、「ソースフォルダ以下のソースファイルを全部コンパイル」というのをjavacコマンドで一発できる方法がないか探しております。 | ||||
|
投稿日時: 2008-10-31 15:40
すべてのソースをコンパイルしてくれる機能ではないですが、javac コマンド自体に、依存クラスをコンパイルしてくれる機能があるので、主要なクラスだけ引数に指定してコンパイルすればいいじゃないでしょうか。
たとえば、javac の引数で packageA\Hoge.java をコンパイルするように指定すれば、Hoge クラスが packageB のクラスに依存していれば、自動的に packageB の依存クラスもコンパイルしてくれます。 あくまでも依存しているクラスをコンパイルしてくれるだけなので、すべてのソースがコンパイルされるということではありませんけどね。たとえば、それぞれのパッケージに依存関係がないとか、リフレクションを使っていて依存関係が分からないとか。 | ||||
|
投稿日時: 2008-10-31 15:44
あぁ、そういうことですね。それならjavac *で出来ませんか? 今見てみたら公式ドキュメントにはsourcefilesにワイルドカード使えるって明記されていないな…。 | ||||
|
投稿日時: 2008-10-31 15:53
使い方の例には載ってますね。 ワイルドカードの扱いって、シェルに依存するのではないですか? だから明記できないのかなと。 スレ主さんは、例えば -r を指定したらフォルダを再帰的に辿ってコンパイルしてくれるようなオプションがないかなーと考えているんですよね? で、おそらくそのような方法は存在しないんですよね。なので皆さん代替案を提案されていると。 # 確実に「ない」と言える人って限られてるだろうしなぁ |