2011-02-06 64 views
0

我有我使用命令 罐子構建jar文件-CF Generic.jar /java/mypackage/*.class 有三類在Generic.jar mypackage的是我命名的包的名稱,以包含我的類文件並創建一個jar文件。 後者我Glassfish的無法導入JSP代碼的jar文件

WEB-INF/lib目錄複製Generic.jar在JSP中使用我

<%@ page import="java.mypackage.GenericTree;" %> 
<%@ page import="java.mypackage.GenericTree1111;" %> 
<%@ page import="java.mypackage.GenericTree2222;" %> 

但我收到以下錯誤導入這些JAR文件。任何人都可以提出什麼問題?

HTTP Status 500 - 

    type Exception report 

    message 

    descriptionThe server encountered an internal error() that prevented it from fulfilling this   request. 

    exception 

    java.lang.NoClassDefFoundError: java/mypackage/GenericTree 

note The full stack traces of the exception and its root causes are available in the GlassFish  Server Open Source Edition 3.0.1 logs. 
    GlassFish Server Open Source Edition 3.0.1 
+0

嘗試查看日誌文件,如錯誤消息底部所示,查看發生了什麼。此消息只是告訴您存在錯誤,而不是錯誤。 – payne 2011-02-06 14:20:11

回答

2
  1. 你確定你的命令成功了嗎?當路徑以斜槓開始時,它不起作用。因此,首先刪除前導斜槓,即命令應如下所示:jar -cf Generic.jar java/mypackage/*.class
  2. 從單詞java開始的軟件包名稱不適合您。僅適用於JDK類。這些類不能由普通的類加載器加載,只能通過自舉加載。所以,重命名你的包。它應該看起來像com.mycompany.myprogram.foo.bar
  3. 使用命令我寫現在創建jar文件,然後測試結果:運行jar vft,看到輸出看起來像

    1612週四2月03 14點44分34秒IST 2011 COM/myCompany的/myprogram/Hello.class

注意路徑。它必須包含你的軟件包。

如果一切正常,請將您的jar複製到WEB-INF/lib下,並享受。祝你好運。