簡體   English   中英

java.lang.ClassNotFoundException:使用外部jar的Applet

[英]java.lang.ClassNotFoundException: Applet using external jar

我正在使用jsp頁面開發applet代碼。

    <APPLET 
      id = "app"
      codebase="<%=request.getContextPath()%>/lib/" 
      code="com.myDemo.test.RunApplet.class" 
      width=100 
      height=50 
      archive="myApp1.jar, myApp2.jar">    
   </APPLET>

我的目錄結構是:

DemoProject
  -- src (some classes & packeages)
  -- build
  -- WebContent
       -- css (some css file)
       -- script (some js file)
       -- WEB-INF
            -- jsp(some jsp file)
                 -- myApplet.jsp
            -- lib
                 -- myApp1.jar
                 -- myApp2.jar

當我執行myApplet.jsp時,它將引發錯誤

java.lang.ClassNotFoundException:com.myDemo.test.RunApplet.class

我也曾申請

codebase = "."
codebase = "classes"
codebase = "classes/"

但仍然是ClassNotFoundException。

請注意, WEB-INF文件夾中的任何內容僅對后端servlet可讀, 瀏覽器中運行的任何內容(包括applet [1]) 均不可讀。

如果lib文件夾中的兩個jar僅由applet使用,則可以將該文件夾上移到webcontent級別。 如果您的后端也使用它們,則必須復制它們或創建一個servlet才能將它們提供給前端。

[1] Java Web應用程序中WEB-INF的用途是什么?

您必須在<APPLET標簽>中引用所有jar。

像你所做地:

archive="myApp1.jar, myApp2.jar"

當心您的罐子在檔案中的位置:

如何在Java小程序中正確指定代碼庫和歸檔?

然后,您必須檢查所有依賴項,並一一包含它們:

解決方案1(如果罐子不是太多):嘗試檢測異常(例如com.myDemo.test),包括罐子,依此類推。

您必須至少給出每個依賴項。

如果您的代碼很短(小程序的原理),則下載時間會較短。

解決方案2:使用一些工具:jaranalyser,...

如何列出JAR的依賴項

解決方案3:非常簡單,但提供了很大的罐子:將所有東西都放入一個罐子中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM