クラスパスでワイルドカードを使用して複数の jar を追加するにはどうすればよいですか?[重複]
質問
この質問にはすでに答えがあります:
非常に多くのサードパーティライブラリ(jarファイル)を使用しているため、使用するすべてのjarファイルのパスを含める必要があるため、CLASSPATHが完全に混乱しています。
ワイルドカード(*)演算子(*.jarなど)を使用して、フォルダー内のすべてのjarファイルを含める方法があるかどうか疑問に思っています。しかし、うまくいかないようです。現在私の PC 上でエッセイのように見える CLASSPATH を短縮できる他の方法はありますか?)。
解決
から:ます。http://java.sun。 COM /のJava SE / 6 /ドキュメント/技術情報/ツール/窓/ classpath.htmlする
クラスパスエントリは、拡張.jarまたは.JARを持つディレクトリ内のすべてのファイルのリストを指定するのと同じと考えられているベース名のワイルドカード文字
*
を含めることができます。例えば、クラスパスエントリfoo/*
は、fooという名前のディレクトリ内のすべてのJARファイルを指定します。*
の単純成るクラスパスエントリは、現在のディレクトリ内のすべてのJARファイルのリストに展開ます。
このはJava6の中で動作するはずです、Java5わからない。
(それが期待どおりに動作しないと思われる場合は、引用符を入れてみてください例:。"foo/*"
)
他のヒント
これは、Windows上で動作します:
java -cp "lib/*" %MAINCLASS%
もちろんの%MAINCLASS%
はあなたのmainメソッドを含むクラスです。
またます:
java -cp "lib/*" -jar %MAINJAR%
ここで%MAINJAR%
は、その内部マニフェストを介して起動するJARファイルである。
ベース名のワイルドカードは、Java 6で導入されました。すなわち、 "FOO / *" "foo" というディレクトリ内のすべての "の.jar" ファイルを意味します。
適切なポイントで文字:「」ワイルドカードのクラスパスをサポートしていないのJavaの以前のバージョンでは、私はパターンを「グロブ」と挿入するために、結果をマングリングにより、クラスパスを組み立てるために、シェルラッパースクリプトを使用してに頼ってきました。これはBATファイルで行うのは難しいだろう...
、私はそれはあなたの間違いだと思います。私は、私は、Javaを開発する任意のマシン上でそのような事はありません。 CLASSPATHは、それはすべてのために働くシングル、正しいCLASSPATHを持っていることは不可能だ、特定のプロジェクトに関連付けられています。
私は、IDEまたはAntのいずれかを使用して、各プロジェクトのためにCLASSPATHを設定します。私はウェブ開発の多くを行うので、各WARやEARは、自分のCLASSPATHを使用します。
これは、IDEやアプリケーションサーバによって無視されます。なぜあなたはそれを持っていますか?私はそれを削除するお勧めします。