2010-03-31 90 views
1

我创建的jar文件,其中包括我的.class,像错误,同时运行jar文件

jar cfmv custadvicejar.jar mymanifest.txt Gchreportsautomation Bean Utils 
jxl.jar ojdbc14.jar 

清单文件和相关性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 

“豆” 是包的名称中包含 “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 :\ Excalcreation

/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文件,应用程序必须运行。请提供解决方案。

回答

0

如果您不介意在其他jar文件周围存在,则您的清单可以指定哪些其他jar应该位于类路径中当jar被调用时。请参阅:

http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html

这可能是不是包括你的罐子从罐子中的文件更容易。

如果你在你的jar中添加一个Class-Path:行来指定jar的位置(相对于可运行的jar,我相信),那么你应该设置。

0

您不能将罐子放入罐子中,也不能使用某些ClassLoader技巧来访问它们。你可以做的是将内部罐子拧开,然后将包含的文件放入主罐中。有工具可以帮助你。另请参见:Classpath including JAR within a 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了顶级目录是你运行了顶级目录jar -xf ojdbc14.jar忽略META-INF。 (但是,如果这些顶级目录中的任何一个包含空格,这将不起作用。)

+0

你能告诉我怎么做那个。我需要紧急。 请尽快帮忙。 – Manu 2010-03-31 15:18:51

+0

我的应用程序在MS-WindowsXp中,我该如何使用grep命令。 – Manu 2010-04-01 06:00:08

+0

上面的命令是针对unix环境的吗? – Manu 2010-04-01 14:28:11