java - 在linux下运行jar包报错:NoClassDefFoundError
ringa_lee
ringa_lee 2017-04-17 11:30:24
[Java讨论组]

本人在windows下首先把程序打成jar包(带外部第三方jar包),然后把jar包和lib(存放第三方jar包的文件夹) 转存到linux下。 Windows下运行正常,Linux运行的时候报NoClassDefFoundError。

以下是我打jar包时用的MANIFEST.MF文件

Manifest-Version: 1.0
Main-Class: com.chenyulin.astSimilarityCalculation/Main
Class-Path: lib\org.eclipse.cdt.core_4.0.3.200802251018.jar lib\org.eclipse.equinox.common_3.6.0.v20110523.jar

java环境变量配置如下

export JAVA_HOME=/usr/java/jdk1.7.0
export CLASS_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export CATALINA_HOME=/usr/local/tomcat7037
export PATH=/home/mysql5/bin:$JAVA_HOME/bin:$PATH
export PATH=$PATH:/usr/local/svn/bin
ringa_lee
ringa_lee

ringa_lee

全部回复(3)
迷茫

如果你要使用环境变量来指定classpath, 那应该是 CLASSPATH 而不是 CLASS_PATH

或者可以在java命令中指定 classpath.

如果是 jdk7 以下的, 需要一个一个的指定jar:

java -classpath lib/foo.jar:lib/bar.jar

如果是 jdk7 或以上的, 可以更加简单:

java -classpath lib/*.jar
黄舟

1.第一步需要确认你的包中是否有对应的class文件,vim asttest.jar 直接找你要的文件。
2.看你的MANIFEST.MF中

Manifest-Version: 1.0
Main-Class: com.chenyulin.astSimilarityCalculation/Main
Class-Path: lib\org.eclipse.cdt.core_4.0.3.200802251018.jar lib\org.eclipse.equinox.common_3.6.0.v20110523.jar

你确认在asttest包的同级目录下 有lib文件,且lib文件下有你需要的这么包?

PHPz

AstSim目录下:
java -Djava.ext.dirs=./lib -jar asttest.jar

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号