• ベストアンサー

一斉コンパイルのバッチファイル・シェル

javac aaaa.java というのをあるディレクトリにある拡張子がjavaであるものに対して 行いたいです。(WindowsかLinux)  どのように書けばいいか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

シェルスクリプト(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)
回答No.5

自信がなかったのでマニュアルを確認しました 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)
回答No.4

javac *.java じゃダメなんだっけ?

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.3

bash、というかLinux(WindowsでもMinGWかCygwinならOK)ならfind (ターゲットディレクトリ) -name "*.java" -exec javac {} \; で一発、というのはありますが、まぁ普通はmakeを使いますね。 #ただし↑はサブディレクトリまで含めて全部やるので注意。 #階層検索しない場合はfindにもう少しオプションが必要

回答No.1

DOS窓からなら FOR %1 IN (*.java) DO javac %1 なんていう具合でいけるでしょう。