采用MANIFEST.MF之jar报错ClassNotFoundException解法

检查n多遍也试了n多次,证明下面是MANIFEST.MF文件正确写法:

Manifest-Version: 1.0

Premain-Class: cn.yandz.monitor.SizeOfObjectUtils 
Can-Redefine-Classes: true 
Class-Path: lib/json-lib-2.4-jdk15.jar lib/ojdbc14.jar lib/commons-beanutils-1.8.3.jar lib/commons-collections-3.2.1.jar lib/commons-lang-2.6.jar lib/commons-logging-1.1.3.jar lib/ezmorph-1.0.6.jar

 

然而通过java -javaagent:jagent.jar执行时一直报错:java.lang.ClassNotFoundException: net.sf.json.JSONObject

花费不少时间终于查明:把Class-Path: lib/xx.jar含义理解错了,其真正要求Class-Path引用的这些jar需要放到当前执行jar的目录下的lib目录中,而不是把他们打包进jar中的lib目录下。

posted @ 2016-06-17 13:36  ACaptain  阅读(1977)  评论(0编辑  收藏  举报