6

多くのjarファイルとクラスパスを含むフォルダーがあります。

-classpath ./classes:./jogamp-all-platforms/jar/*

しかし、パッケージが見つかりません。問題のリソースがあることを確認するために、それを含む jar を手動で見つけて、クラスパスを次のように変更します。

-classpath ./classes:./jogamp-all-platforms/jar/jogl-all.jar

そして今、パッケージが見つからないことについて不平を言うことはありません。

4

4 に答える 4

2

Debian では、これを機能させるために、ワイルドカードのすぐ周りに引用符を配置する必要がありました。"*"

次に、コンパイル コマンドは次のようになります。

javac -cp ~/my\ stuff/Java/"*" test.java

私はJDK、JRE 8を使用しています。

于 2014-04-23T13:36:06.677 に答える
1

問題は、ディレクトリ内のすべてのエントリに展開され、クラスパス構文により、プラットフォームで*区切られたディレクトリと jar ファイルが許可されることです。展開され、ディレクトリ内のすべての jar が含まれ、次のようなもので終了します。:*

-classpath ./classes:./jogamp-all-platforms/jar/jogl-all.jar another.jar etc.jar

./jogamp-all-platforms/ディレクトリにjogl-all.jar another.jar etc.jarjarがある場合。

*次のようなものを使用して、シェルによる展開をエスケープできます。

-classpath './classes:./jogamp-all-platforms/jar/*'

このようにして、コンパイラは*展開を解釈します。

于 2012-10-30T18:35:28.580 に答える
1

;以下のようにパス区切りとして使用する必要があると思います./classes

 -classpath ./classes;./jogamp-all-platforms/jar/*

また、次の点にも注意してください。

Subdirectories are not searched recursively. For example, jogamp-all-platforms/jar/* looks for JAR/Class files only in jogamp-all-platforms/jar, not in jogamp-all-platforms/jar/abcd, jogamp-all-platforms/jar/efc, etc.

を実行すると、フォルダ内-classpath ./classes:./jogamp-all-platforms/jar/*のすべての JARのみが表示されます。jogamp-all-platforms/jar

詳細については、こちらのドキュメントを参照してください-クラスパスのワイルドカード

于 2012-10-30T18:35:50.870 に答える
0

最初のフォームは機能しません。ワイルドカードを含む jar ファイルをロードすることはできません。依存クラスが欠落していない限り、2 番目の形式が機能するはずです。

于 2012-10-30T18:34:25.503 に答える