- ベストアンサー
一斉コンパイルのバッチファイル・シェル
javac aaaa.java というのをあるディレクトリにある拡張子がjavaであるものに対して 行いたいです。(WindowsかLinux) どのように書けばいいか教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
シェルスクリプト(Bsh系)なら for i in *.java ;do javac $i ; done だけど、こういうビルドの管理はmakeを使うのが便利です。 GNU makefileの例(\tはタブ文字に置き換えてください) : SRC:=$(wildcard *.java) CLASSES:=$(SRC:%.java=%.class) all: $(CLASSES) %.class: %.java \tjavac $<
その他の回答 (4)
- kmee
- ベストアンサー率55% (1857/3366)
自信がなかったのでマニュアルを確認しました http://download.oracle.com/javase/6/docs/technotes/tools/windows/javac.html > javac [ options ] [ sourcefiles ] [ classes ] [ @argfiles ] sourcefilesと複数形です。 http://download.oracle.com/javase/6/docs/technotes/tools/windows/javac.html#examples には 「Compiling Multiple Source Files」という例もあります。 ということで、再帰的にディレクトリを潜るのでなければ、forとか使う必要はなさそうです。 javac *.java でいいようですね。
- Tacosan
- ベストアンサー率23% (3656/15482)
javac *.java じゃダメなんだっけ?
- D-Matsu
- ベストアンサー率45% (1080/2394)
bash、というかLinux(WindowsでもMinGWかCygwinならOK)ならfind (ターゲットディレクトリ) -name "*.java" -exec javac {} \; で一発、というのはありますが、まぁ普通はmakeを使いますね。 #ただし↑はサブディレクトリまで含めて全部やるので注意。 #階層検索しない場合はfindにもう少しオプションが必要
- maccha_neko
- ベストアンサー率33% (465/1379)
DOS窓からなら FOR %1 IN (*.java) DO javac %1 なんていう具合でいけるでしょう。