[英]Error while running jar file
我創建了jar文件,其中包括我的.class,清單文件和依賴項jar文件,例如
jar cfmv custadvicejar.jar mymanifest.txt Gchreportsautomation Bean Utils
jxl.jar ojdbc14.jar
哪里
custadvicejar.jar - is my jar file name
mymanifest.txt contains
Main-Class: Gchreportsautomation.GCH_Home_Loan_Data_Cust_Advice_DAO
“ Gchreportsautomation”是包含“ GCH_Home_Loan_Data_Cust_Advice_DAO.class”的程序包名稱[此類是我應用程序的起點]
Gchreportsautomation/ GCH_Home_Loan_Data_Cust_Advice_DAO.class
“ Bean”是包含“ GCH_Home_Loan_Data_Cust_Advice_Bean.class”的程序包名稱
Bean/ GCH_Home_Loan_Data_Cust_Advice_Bean.class
“ Utils”是包含“ Utils.class”的程序包名稱
Utils/ Utils.class
和
jxl.jar and ojdbc14.jar are jar files required for my application which i kept
in parent directory of the .class files like
D:\\ calc割
/Gchreportsautomation/ GCH_Home_Loan_Data_Cust_Advice_DAO.class
/Bean/ GCH_Home_Loan_Data_Cust_Advice_Bean.class
/Utils/ Utils.class
/jxl.jar
/ojdbc.jar
在運行應用程序時出現錯誤
Caused by: java.lang.ClassNotFoundException: jxl.format.CellFormat
我知道這是由於類路徑錯誤。 如何糾正它。
如果我單擊jar文件,則該應用程序必須運行。 請提供解決方案。
如果不提取一些ClassLoader
技巧來訪問它們,就不能在jar中包含jar。 但是,您可以做的是解壓內部jar,然后將包含的文件放入主jar。 有一些工具可以幫助您。 另請參閱: 類路徑,包括JAR中的JAR
要手動執行此操作,請執行以下操作:
jar -xf jxl.jar
jar -xf ojdbc14.jar
jxl-dirs=`jar -tf jxl.jar | sed -e 's/\/.*//' | sort | uniq | grep -v META-INF`
ojdbc14-dirs=`jar -tf ojdbc14.jar | sed -e 's/\/.*//' | sort | uniq | grep -v META-INF`
jar cfmv custadvicejar.jar mymanifest.txt Gchreportsautomation Bean Utils $jxl-dirs $ojdbc14-dirs
其中$jxl-dirs
是通過運行第一個jar -xf jxl
得到的頂級$ojdbc14-dirs
而$ojdbc14-dirs
是通過運行jar -xf ojdbc14.jar
得到的頂級目錄,而沒有META-INF
。 (但是,如果這些頂級目錄中的任何一個包含空格,這將不起作用。)
如果您不介意其他jar文件,清單可以指定調用jar時應在類路徑中的其他jar。 看到:
http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html
這可能比將jar中的文件包含在jar中要容易。
如果在jar中添加一個Class-Path:行來指定jar的位置(我相信相對於可運行的jar),則應該進行設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.