[解決済み] javac オプションで、指定したディレクトリ以下のすべての java ファイルを再帰的にコンパイルする。
質問
私のプロジェクトでは、javacコンパイラーを使ってjavaファイルをコンパイルしています。ファイルは、このようにいくつかのパッケージに分散されています。
com.vistas.util
,
com.vistas.converter
,
com.vistas.LineHelper
,
com.current.mdcontect
.
これらのパッケージはそれぞれいくつかのjavaファイルを持っています。私はこのようにjavacを使っています。
javac com/vistas/util/*.java com/vistas/converter/*.java
com.vistas.LineHelper/*.java com/current/mdcontect/*.java
(1行で)
多くのパスを与える代わりに、親ディレクトリの com ディレクトリからすべての java ファイルを再帰的にコンパイルするようにコンパイラに指示するにはどうすればよいですか?
どのように解決するのですか?
また、何らかのビルドツールを使用することをお勧めします ( アント または メイヴン が推奨されており、Antから始めるのが簡単です)、またはコンパイルを行うIDE(Eclipseは調整戦略を用いたインクリメンタル・コンパイルを行います。 "コンパイル"。 ボタン)。
Javacの使用方法
大きなプロジェクトで何かを試す必要があり、適切なビルドツールが近くにない場合、いつでも以下のような小さなトリックを使うことができます。
javac
コンパイルするクラス名をファイルで指定することができます。そのファイル名を
javac
と共に
@
の接頭辞があります。
のリストを作成することができれば、すべての
*.java
ファイルであれば、簡単です。
# Linux / MacOS
$ find -name "*.java" > sources.txt
$ javac @sources.txt
:: Windows
> dir /s /B *.java > sources.txt
> javac @sources.txt
- メリット は、迅速で簡単な解決策であることです。
-
欠点
を再生成しなければならないことです。
sources.txt
ファイルは、新しいソースを作成したり、既存のソースの名前を変更するたびに、忘れやすく(つまりエラーが発生しやすく)、面倒な作業です。
ビルドツールの使用
長い目で見れば、ソフトウェアをビルドするために設計されたツールを使う方がよいでしょう。
Antの使用方法
単純な
build.xml
ファイルには、ソフトウェアの構築方法を記述しています。
<project default="compile">
<target name="compile">
<mkdir dir="bin"/>
<javac srcdir="src" destdir="bin"/>
</target>
</project>
を実行すれば、全ソフトウェアをコンパイルすることができます。
$ ant
- メリット は、拡張が容易な標準的なビルドツールを使用していることです。
- 欠点 は、追加のツールをダウンロードし、セットアップし、学習する必要があることです。IDE(NetBeansやEclipseなど)のほとんどは、ビルドファイルを書くための素晴らしいサポートを提供しているので、この場合は何もダウンロードする必要はないことに注意してください。
Mavenの使用
Mavenはセットアップや作業にそれほど手間がかからないわけではありませんが、学習することで良い報酬を得ることができます。このチュートリアルでは 5分以内にプロジェクトを開始する .
- 主な利点 (私にとっては)依存関係も処理してくれるので、これ以上Jarファイルをダウンロードして手で管理する必要がなく、大規模なプロジェクトのビルド、パッケージング、テストに便利だと思いました。
- 欠点 は、学習曲線が急であることと、Mavenプラグインがエラーを抑制するのが好きな場合です:-) もうひとつは、かなり多くのツールがMavenリポジトリでも動作することです(たとえば Sbt Scalaの場合。 アイビー はAnt用です。 グラドル Groovyの場合)。
IDEを使用する
さて、これで開発の生産性を上げることができるかもしれません。オープンソースの代替品もいくつかあります(たとえば エクリプス と NetBeans 私は前者の方が好きです)、さらには商業的なもの(例えば IntelliJ ) は、かなり人気があり、強力です。
これらはバックグラウンドでプロジェクトの構築を管理してくれるので、コマンドラインでの作業をする必要がありません。しかし、もしあなたが
実際に起こること
のようなエラーを突き止めることができます。
ClassNotFoundException
.
補足説明
大規模なプロジェクトでは、常にIDEを使用することをお勧めします。
と
ビルドツールです。前者は生産性を向上させ、後者はプロジェクトで異なるIDEを使用することを可能にします(例えば、MavenはEclipseのプロジェクト・ディスクリプタを簡単な操作で生成することができます)。
mvn eclipse:eclipse
コマンドを使用します)。さらに、1行のコマンドでテスト/ビルドできるプロジェクトがあれば、新しい同僚や継続的インテグレーションサーバーなどに簡単に導入することができます。楽勝です :-)
関連
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
をインスタンス化することができません。
-
Javaクラスローダーにソースコードから潜り込む
-
エラーの解決方法 jarfile XXX.jarにアクセスできません。
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
node js npm gruntインストール、elasticsearch-head 5.Xインストール
-
[オリジナル】java学習ノート【II】よくあるエラー クラスパス上のクラスファイルが見つからない、またはアクセスできない場合
-
あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a
-
IDEA パッケージステートメントの欠落
-
[解決済み] Javaからフォルダ内の全ファイルを読み込むには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
final, finally, finalizeの違いについて話してください。
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
javaの模造品QQ WeChatのチャットルーム
-
JQuery DataTable 详解
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
linux run jarfile Invalid or corrupt jarfile error.
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
java.lang.NoClassDefFoundError: org.apache.jasper.el.ELContextImpl クラスを初期化できませんでした。
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind
-
このラインで複数のマーカーを解決する方法