anonymoustian
V2EX  ›  Java

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

  •  
  •   anonymoustian · Jan 24, 2016 · 4199 views
    This topic created in 3772 days ago, the information mentioned may be changed or developed.

    项目中需要用到一些第三方的 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 包的原因。

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

    谢谢!

    7 replies    2016-01-24 20:19:33 +08:00
    ming2050
        1
    ming2050  
       Jan 24, 2016 via Android
    问题已经很明确了。。。。
    ming2050
        2
    ming2050  
       Jan 24, 2016 via Android
    weka 这个包没打进去
    wucao219101
        3
    wucao219101  
       Jan 24, 2016 via iPad
    解压一下看一看包中有没有依赖包在,很可能没打进去。另外更建议用 Maven 插件打 jar 包: http://xxgblog.com/2015/08/07/maven-create-executable-jar/
    publicAdmin
        4
    publicAdmin  
       Jan 24, 2016
    linux 下有个 jdk 的包和 windows 下不一致,需要手动创建软链接让环境变量找到,并识别.
    reeco
        5
    reeco  
       Jan 24, 2016
    用 maven 将全部依赖打成一个包就好了
    xcaspar
        6
    xcaspar  
       Jan 24, 2016
    java -cp . -jar xxx.jar 试试
    north521
        7
    north521  
       Jan 24, 2016
    fat jar
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2876 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 04:14 · PVG 12:14 · LAX 21:14 · JFK 00:14
    ♥ Do have faith in what you're doing.