私が働いている場所には、必要なすべてのライブラリと設定を使用して任意の Java クラスを実行できるシェル スクリプトがあります。
#!/bin/sh
$JAVA_HOME/bin/java -cp LONG_LIST_OF_JARS -Xmx6g -XX:MaxPermSize=128m "$@"
そして次のように使用されます:
javacorp.sh com.mycorp.SomeJob
java
これは、すべての引数を毎回明示的に指定する必要があるよりは明らかに優れていますが、コードベースをコンパイルするために Eclipse プロジェクトで構成された jar に手動で接続するだけで済むのは好きではありません。私は個人的なプロジェクトに取り組んでおり、同様にコマンドラインから任意のクラスを実行できるようになり、一貫したjava
環境を提供する最善の方法を特定しようとしています。
現在、Eclipse を使用してアプリケーションを実行していますが、コマンド ラインから直接、または Eclipse がインストールされていないマシンで実行できるようにしたいと考えています。特に、実行できるクラス/jar の範囲を制限できるようにしたいと考えています。たとえば、ディレクトリjavacorp.sh
内のすべてを実行し、クラスパスのディレクトリ内のクラスsrc/
のみをjavacorpunit.sh
含めます。tests/unit/
- Ant、Maven、またはその他のビルド ツールを使用して
java
、最小限のボイラープレートでコマンド ラインで構成済みのコマンドを実行するクリーンな方法はありますか? .classpath
Eclipse が作成するファイルにフックする方法はありますか? これで問題が完全に解決されるわけではありませんが (メモリ設定の一貫性など)、既に存在するデータを使用するとよいでしょう。
編集:
私の質問の別の言い方は、「コマンド ラインで Eclipse の簡単な [現在のファイルのメイン メソッドを実行] ボタンを再現する最もクリーンな方法は何ですか?」です。