Windows マシンで Java プログラムを実行しようとしています。プログラムのライブラリは、ネットワークの場所 - に配置されます\\libs\myprog
。Windows マシンでネットワーク ドライブを作成できません。
ここで問題は、上記の lib に Java クラスパスを設定する方法です。
私は次のことを試しました:
java -cp \\libs\myprog Main
java -cp //libs/myprog Main
しかし、何も機能しませんでした。
特別なことをする必要はありません(Java 7で確認しました)。
タイプミスがあったため、私のプログラムは機能しませんでした。したがって、ネットワーク パスから jar を追加する必要がある場合は、
\\remote\libs
私のプログラムのクラスパスに、必要なのは次のコマンドを起動することだけです:
java -cp local.jar;\\remote\libs\*;. MAIN
それだけです!
あなたが絶望的で、本当にこれが必要な場合 (注意: 設計とパフォーマンスの観点からはお粗末です)、URLClassLoader
実行時にこれらのライブラリを取得するために を使用できます。ライブラリをロードする URL を構成するだけです。たとえば、アプリケーションの開始時にメイン クラスの引数として、またはシステム プロパティとして、それらを URLClassLoader に渡します。URLClassLoader はクラスを取得できます (おそらく、ローカル ファイル システムよりもはるかに遅く、リスクが高くなります)。アクセスしますが、動作します)。Javadoc を見てください: URLClassLoader javadoc
理論的には、「java -javaagent:**.jar=option -jar your.jar」で作業を完了できます。
私の知る限り、エージェント クラスのリモート サーバーから URLClassLoader などを使用してクラスをロードできます。
しかし、エージェントアプリケーションをコーディングしたばかりなので、うまくいくかもしれません。