次のコマンドを使用して実行される Java アプリケーションがあります。
java -cp .;lib\*;myapp.jar com.app.myapp.MyAppStart
myapp.jar は、次のファイルと構造を持つフォルダーにあります。
/demo
/lib
/conf
myapp.jar
myapp.bat
myapp.bat には上記の実行コマンドが含まれているため、ダブルクリックするとプログラムが実行されます。フォルダーをローカルパスにコピーすると、すべて正常に機能します。たとえば、フォルダーがある場合、
c:\program\myapps\demo
そのフォルダーに移動して myapp.bat スクリプトをダブルクリックすると、プログラムが起動します。
私が今抱えている問題は、デモフォルダーをネットワーク上のパスにコピーしたいということです。にコピーしてテストしました\\London-server01\applications\client\demo\
が、次の例外が発生します
Exception in thread "main" java.lang.NoClassDefFoundError: com/app.myapp/MyAppStart
Caused by: java.lang.ClassNotFoundException: com.app.myapp.MyAppStart
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: com.app.myapp.MyAppStart. Program will exit.
プログラムがネットワークドライブから実行されるという事実が気に入らないようです。ローカル ドライブ文字にマッピングすることで別のアプローチを試みましたが\\London-server01\applications\client\demo\
、問題なく正常に動作します。完全なネットワーク パスを使用してフォルダーにアクセスする場合にのみ機能しません。ネットワーク パスをマップする必要なく動作させる方法はありますか?