ImはJDK 1.6.0.25を使用しています。ワイルドカードによるクラスパスが私にとってうまくいかないのはなぜですか?
私はどのような-cp .;Server.jar;Util.jar;../jars/**/*;./lib/*
、これは動作しませんし、私は明示的にこれらのディレクトリ内のファイルを参照する必要が終わる:私はそうのようにクラスパスを含めるようにしようとしています。どのようにこれをデバッグするか、誰かが私が間違ってやっていることを知っていますか?
ImはJDK 1.6.0.25を使用しています。ワイルドカードによるクラスパスが私にとってうまくいかないのはなぜですか?
私はどのような-cp .;Server.jar;Util.jar;../jars/**/*;./lib/*
、これは動作しませんし、私は明示的にこれらのディレクトリ内のファイルを参照する必要が終わる:私はそうのようにクラスパスを含めるようにしようとしています。どのようにこれをデバッグするか、誰かが私が間違ってやっていることを知っていますか?
Settings the classpath(節「の理解クラスパスのワイルドカード」)を参照してください
あなたは、Antのかバッシュ形式のワイルドカードを使用することはできません、あなただけの「標準」方法でそれを使用することができます。
「標準」ワイルドカードの全範囲を使用することはできません。 ** ** 'somedirectory/*'のみがサポートされています。 –
?/*がサポートされているかどうかというあなたの声は?なぜ私はOracle/Sunがこれを別の方法で実装していないのだろうか...セキュリティ上の問題だろうか? – djangofan
Java application launcher documentation:
クラスパスエントリは、拡張子.jarと ディレクトリ内のすべてのファイルのリスト を指定するのと同じとみなされ ベース名のワイルドカード文字*を含めることができますか.JAR。
**
というシーケンスは言及されていませんが、これはJava実行可能ファイルによって意味をなさない方法で解釈されることはありません。サブディレクトリ内でも再帰的に検索することはできません。
サブディレクトリは再帰的に検索されません。たとえば、fooが/ *言い換えるだけfooのではなく、 FOO /バー、FOO /バズでJARファイル用の など
、クラスパスエントリ../jars/**/*
でjars
ディレクトリのすべての子ディレクトリを検索しますコマンドラインから直接ワイルドカードを使用する場合は、明示的に指定する必要があります。
[/ jars/**/*]の部分については、これが問題である可能性があることがわかります。あなたは[/jars/*.*]を意味しましたか? – Ahmad