繁体   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