我有一个使用以下命令运行的 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\
到本地驱动器号尝试了另一种方法,并且可以正常工作而没有任何问题。如果我使用完整的网络路径来访问文件夹,它只会失败。有什么方法可以让它工作而无需映射网络路径?