在eclipse上,我编译了一个jar文件。
它在映射的netwrok驱动器上使用多个外部存档。
该项目在Eclipse上完美运行。

我已经将jar +所有的依赖jars复制到某个Solaris目录中。
然后我尝试

java -jar myapp.jar


它给了我以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: confmng/ConfigManager


错误消息中指定的此类位于已映射的jar之一内,我已将其复制到与主jar相同的目录中。

此外,我从solaris ping了依赖项jar所在的服务器,它是肯定的。

您还可以看到confmng包中的ConfigManager类确实在依赖项jar中:

java - 运行jar时java.lang.ClassNotFoundException且其依赖项位于同一目录中-LMLPHP

有什么事吗

谢谢

最佳答案

您必须指定依赖项的类路径,可以在清单类路径中指定,也可以在带有java -jar myapp.jar参数的-classpath命令中指定。

例:

java -classpath dependency1.jar;subfolder/dependency2.jar;myapp.jar package.of.your.main.Class


您还可以在Eclipse中导出Runnable Jar,因此会有一些选项可以处理依赖项,例如选项“将所需的库打包到生成的JAR中”。

10-07 19:23
查看更多