java.lang.ClassNotFoundException 当 运行 一个 jar 及其依赖项在同一目录中
java.lang.ClassNotFoundException when running a jar and its dependency is in the same directory
在eclipse上我编译了一个jar文件。
它在映射的网络驱动器上使用多个外部存档。
项目完美运行在eclipse上
我已经将 jar 和所有依赖 jar 复制到某个 Solaris 目录中。
然后我试了
java -jar myapp.jar
它给了我以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: confmng/ConfigManager
错误消息中指定的 class 位于我已复制到与主 jar 相同目录的映射 jar 之一中。
此外,我从 solaris 对依赖 jar 所在的服务器执行了 ping 操作,结果是肯定的。
还可以看到confmng包里面的ConfigManagerclass确实在依赖jar里面:
有什么问题吗?
谢谢
您必须指定依赖项的类路径,您可以在清单类路径中指定,或者在带有 -classpath
参数的 java -jar myapp.jar
命令中指定。
示例:
java -classpath dependency1.jar;subfolder/dependency2.jar;myapp.jar package.of.your.main.Class
您还可以在 Eclipse 中导出 Runnable Jar,因此会有一些选项来处理依赖项,例如选项 "Package required libraries into generated JAR"。
在eclipse上我编译了一个jar文件。 它在映射的网络驱动器上使用多个外部存档。 项目完美运行在eclipse上
我已经将 jar 和所有依赖 jar 复制到某个 Solaris 目录中。 然后我试了
java -jar myapp.jar
它给了我以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: confmng/ConfigManager
错误消息中指定的 class 位于我已复制到与主 jar 相同目录的映射 jar 之一中。
此外,我从 solaris 对依赖 jar 所在的服务器执行了 ping 操作,结果是肯定的。
还可以看到confmng包里面的ConfigManagerclass确实在依赖jar里面:
有什么问题吗?
谢谢
您必须指定依赖项的类路径,您可以在清单类路径中指定,或者在带有 -classpath
参数的 java -jar myapp.jar
命令中指定。
示例:
java -classpath dependency1.jar;subfolder/dependency2.jar;myapp.jar package.of.your.main.Class
您还可以在 Eclipse 中导出 Runnable Jar,因此会有一些选项来处理依赖项,例如选项 "Package required libraries into generated JAR"。