我正在使用ANT創建我的應用程序的JAR文件。在我閱讀的時候,我應該把我需要的外部Jars作爲參數從命令行中提取出來,但是我想創建一個Manifest文件。從命令行運行Jar:ClassNotFoundException
這是我的build.xml文件(僅在部分中,我構建JAR)
現在,這是清單文件
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.4
Created-By: 1.6.0_45-b06 (Sun Microsystems Inc.)
Main-Class: com.sap.coas.deployer.StoreInstanceOnMove
Class-Path: lib/ConfigurationMetamodel-1.jar lib/Consumer_api-1.jar li
b/FunctionalSystemMetaModel-1.jar lib/WS_api-1.jar lib/activemq-core-
5.7.0.jar lib/activemq-protobuf-1.1.jar ..... other jar
的提取物。如果我打開JAR生成,我可以看到META-INF文件夾內的清單,並且lib文件夾包含所有庫。 所以JAR的結構是這樣的一個:
/META-INF/manifest.mf
/lib/ConfigurationMetamodel-1.jar
/lib/otherJar.jar ........
但是當我嘗試運行
java -jar myJar.jar
我得到了ClassNotFoundException的,我敢肯定,包含拋出類的jar異常是在lib文件夾中。
謝謝!
嘗試包括通過使用-classpath或-cp開關的命令行上的所有JAR文件:Java的罐子myJar.jar -cp LIB/a.jar文件; LIB/b.jar等等... – Manish
但是,您確定lib文件夾與可運行jar文件夾位於相同的文件夾中嗎? –
@管理它將花費太多時間,因爲我必須分發這個JAR。實際上,我發現(我認爲)解決方案:manifestclasspath的屬性jarfile是錯誤的,現在$ {target.dist} /configuration-deployer.jar正在工作,有什麼想法? – Alessio