Applet 类加载器无法在 applet 的 jar 中找到类

2023-12-12

我开始问这个问题,然后在提交之前找到了答案。无论如何,我决定发布这个问题,以便其他遇到同样问题的人能够从我的错误中吸取教训。


我在使用小程序时遇到问题(aJApplet实际上)无法实例化与小程序包含在同一 jar 中的另一个类。我在 Java 控制台上看到的异常是:



Exception in thread "thread applet-com.company.program.cm.hmi.MediatorApplet-1" java.lang.NoClassDefFoundError: com/company/program/cm/cs/JDataStore
    at com.company.program.cm.hmi.MediatorApplet.getMediator(MediatorApplet.java:63)
    at com.company.program.cm.hmi.MediatorApplet.init(MediatorApplet.java:49)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.company.program.cm.cs.JDataStore
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 4 more
Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/TransportHMI/pages/com/company/program/cm/cs/JDataStore.class
    at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    ... 8 more
  

我知道JDataStore类包含在 jar 中。如果我使用列出内容jar tvf CM_Library.jar我可以看到它位于正确的包下。然而,上面的连锁异常让我相信类加载器没有在档案中搜索JDataStore,并且正在 Web 服务器上查找 JDataStore.class 文件。为什么是这样?类加载器知道从 jar 中加载 MediatorApplet 类,为什么它不检查 JDataStore 呢?如果我没有在小程序标签上正确指定参数,我也会将其包含在此处:

<applet id="mediator-applet"
        width="0"
        height="0"
        codebase="./"
        archive="CM_Library.jar"
        code="com.company.program.cm.hmi.MediatorApplet">
</applet>

通过查看找到了答案一条建议发布了一个相关问题。埃迪的回答并没有解决这个特定问题,但它确实为我提供了解决方案。

从我的问题中不太明显的是 JDataStore 类继承自另一个包含在不同 jar 中的类。我已经有几个月没有处理 JDataStore 的实现细节了,所以我完全忘记了它的父类 org.json.simple.JSONObject 并不在 CM_Library.jar 中,而是在 json_simple-1.0 中.2.jar。修复相当简单,只需将丢失的 jar 复制到代码库目录,然后将丢失的 jar 添加到 applet 标签中以逗号分隔的存档列表中archive属性:

<applet id="mediator-applet"
        width="0"
        height="0"
        codebase="./"
        archive="CM_Library.jar, json_simple-1.0.2.jar"
        code="com.company.program.cm.hmi.MediatorApplet">
</applet>

这修复了错误。异常消息并不是特别有帮助。它会让您相信它根本找不到该类,而实际问题是它无法加载所请求类的超类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Applet 类加载器无法在 applet 的 jar 中找到类 的相关文章

  • Grails 3.x bootRun 失败

    我正在尝试在 grails 3 1 11 中运行一个项目 但出现错误 失败 构建失败并出现异常 什么地方出了错 任务 bootRun 执行失败 进程 命令 C Program Files Java jdk1 8 0 111 bin java
  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 如何在 javadoc 中使用“<”和“>”而不进行格式化?

    如果我写
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo

随机推荐

  • 如何使用 Plotly Express 创建子图 [重复]

    这个问题在这里已经有答案了 如果您像我一样 喜欢 Plotly Express 但是当您遇到 Express 返回的数字无法使用 make subplots 的问题时感到沮丧 因为 make subplots 接受的是迹线而不是数字 在这篇
  • 允许 RSU 在 Veins 中接收消息

    我正在尝试在 Veins OMNeT SUMO 上实现一个非常简单的场景 只需三辆车和一个独特的固定 RSU 但我是 Veins 的新手 尽管有大量文档 但我无法很好地移动 常见问题解答和教程我已经读过 我的起点是默认的 TraCI 场景演
  • 库中的 CodeIgniter 验证不接受回调

    我的问题如下 我正在编写一个登录库 该库有一个函数 validation 它使用验证库来验证数据 使用正常的验证方法可以正常工作 但使用回调函数就行不通 它不被称为 我这样称呼它 this gt CI gt form validation
  • 使用 Python 通过 SSH 从服务器读取文件

    我正在尝试使用 Python 中的 SSH 从服务器读取文件 我正在使用 Paramiko 进行连接 我可以连接到服务器并运行类似的命令cat filename并从服务器取回数据 但我尝试读取的某些文件大小约为 1 GB 或更大 如何使用P
  • 使用 WebApi 和 ODataQueryOptions 实现 $select

    我正在尝试使用 ODataQueryOptions 通过自定义 DAL 实现一些 OData 功能 我的 DAL 使用设计时生成的类型化数据表 通过拦截 ODataQueryOptions 的 SelectExpand 属性 我可以让 DA
  • 具有部分更新的实体框架验证

    我将 Entity Framework 5 0 与 DbContext 和 POCO 实体一起使用 有一个包含 3 个属性的简单实体 public class Record public int Id get set public stri
  • 为什么从 ResourceBundle.getBundle 检索字符串时出现无法理解的字符

    请告诉我如何解决这个问题 Locale locale new Locale language ResourceBundle messages ResourceBundle getBundle i18n messages locale utf
  • C++ 运算符歧义

    请原谅我 因为我对 C 相当陌生 但我在运算符歧义方面遇到了一些麻烦 我认为它是特定于编译器的 适用于在我的桌面上编译的代码 但是 它无法在我的笔记本电脑上编译 我想我知道出了什么问题 但我没有看到一个优雅的解决方法 如果我犯了一个明显的错
  • CMSampleBufferGetImageBuffer 中的内存泄漏

    我得到了一个UIImage from a CMSampleBufferRef每 N 个视频帧进行视频缓冲 例如 void imageFromVideoBuffer void UIImage image completion CMSample
  • 如何在具有 ARM CPU 的 WinRT 设备中部署 SQLite?

    我正在开发一个 C Window8 WinRT 应用程序 并且正在使用 SQLite NET 以及链接在文档底部的 sqlite3 dll https github com praeclarum sqlite net 我的项目在我的计算机上
  • 在 PHP 中以编程方式创建 Excel 图表

    您知道如何通过 PHP 以编程方式在 Excel 工作表中创建图表吗 我知道您可以调用 Excel COM 对象 但服务器正在 Linux 计算机上运行 我已经使用了优秀的 PHPExcel 库 但他们不提供创建图表的选项 Thanks 尝
  • 如何使用新的图形 API 在 FB 中显示扩展权限对话框?

    我之前使用旧的 REST API 在 Facebook 中显示权限对话框 现在 有了新的图形 API 我能做什么 我在 IFrame 应用程序中 我知道我可以作弊并在单独的窗口中弹出权限 FB login function response
  • 运行 php 脚本时 Jquery 函数说未定义

    我基本上是这样做的 所以当你点击一个按钮 投票 时 现在我有 客户 php
  • .net Core Mailkit 从数组发送附件

    我正在测试 Net Core MVC 它不支持 System Net Mail 我发现的唯一替代方案是 Mailkit 效果很好 但无法弄清楚如何发送我以二进制形式存储在数据库中的附件 我在 MVC 5 中使用了以下内容 var mail
  • Eclipse CDT 不会运行已编译的 exe 文件

    所以我决定安装 Eclipse CDT 作为我选择的 IDE 然而 似乎一旦我开始运行需要输入的 C 程序 Eclipse 就决定停止运行控制台窗口中的文件 我尝试在任务管理器中关闭该程序的所有实例 并且我在计算机上找到的 exe 文件运行
  • 在 Postgres 中复制/克隆表的最快方法是什么?

    我知道我能做到CREATE TABLE tbl 2 AS select from tbl 1 但有没有更好 更快 更强的方法来做到这一点 我现在谈论的主要是性能 这些表都是非规范化的 我没有任何外键约束需要担心 EDIT 或许就没有更好的办
  • 使用“graphics.DrawString”后如何提高打印文本质量?

    打印后我的文本质量有问题 它不平滑和抗锯齿 故事是这样的 我从位图创建图形 Graphics FromImage MyBitmap and 我认为这是我的问题的起点 因为我无法使用 PrintPageEvenArg e 但我别无选择 之后我
  • Tensorflow 似乎没有看到我的 GPU

    我已经在cuda 7 5和8 0上尝试过tensorflow 没有cudnn 我的GPU很旧 cudnn不支持它 当我执行时device lib list local devices 输出中没有 GPU Theano 可以看到我的 GPU
  • Android 6.0获取MAC地址

    我正在开发一个获取设备 MAC 地址的应用程序 但从 Android 6 0 开始 我的代码不起作用 给了我一个不正确的值 这是我的代码 public String ObtenMAC WifiManager manager WifiMana
  • Applet 类加载器无法在 applet 的 jar 中找到类

    我开始问这个问题 然后在提交之前找到了答案 无论如何 我决定发布这个问题 以便其他遇到同样问题的人能够从我的错误中吸取教训 我在使用小程序时遇到问题 aJApplet实际上 无法实例化与小程序包含在同一 jar 中的另一个类 我在 Java