求助, IEDA 打包的 jar 包在 windows 运行没问题,但在 Linux 就是找不到第三方的 jar 包。

2016-01-24 17:51:23 +08:00
 anonymoustian

项目中需要用到一些第三方的 jar 包,在 IEDA 里面运行没有问题。
然后按照 http://bglmmz.iteye.com/blog/2058785 里面的做法, 打包成了 jar 包,在 Windows 下运行没有问题。
但是将 lib 文件夹和 jar 包上传到 Linux 服务器时,就会报错:
Exception in thread "main" java.lang.NoClassDefFoundError.

Caused by: java.lang.ClassNotFoundException: weka.core.SerializationHelper

看上去是因为入口程序没有找到第三方 jar 包的原因。

但是为什么呀,大家有没有好的解决思路和方法?

谢谢!

3685 次点击
所在节点    Java
7 条回复
mringg
2016-01-24 18:13:11 +08:00
问题已经很明确了。。。。
mringg
2016-01-24 18:13:58 +08:00
weka 这个包没打进去
wucao219101
2016-01-24 18:24:26 +08:00
解压一下看一看包中有没有依赖包在,很可能没打进去。另外更建议用 Maven 插件打 jar 包: http://xxgblog.com/2015/08/07/maven-create-executable-jar/
publicAdmin
2016-01-24 18:46:54 +08:00
linux 下有个 jdk 的包和 windows 下不一致,需要手动创建软链接让环境变量找到,并识别.
reeco
2016-01-24 19:12:53 +08:00
用 maven 将全部依赖打成一个包就好了
xcaspar
2016-01-24 19:14:59 +08:00
java -cp . -jar xxx.jar 试试
li24361
2016-01-24 20:19:33 +08:00
fat jar

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/253041

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX