檢查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目錄下。