java - 仅当 JAR 已签名时才会出现 ClassNotFoundException

标签 java jar applet signing

这是一个难题!

我的 JAR 中有一个小程序。当 JAR 签名时 - 无论是自签名还是使用 DigiCert 证书 - 我在主小程序类上收到 ClassNotFoundException 。 当我对小程序进行签名时,它加载得很好 - (由于代码未签名,不计算预期的 SecurityException)。

但是我可以解压签名的 JAR,并发现所有内容都在它应该在的位置。

最奇怪的部分是,直到上周,设置都运行得很好。 相同的主类、自签名、相同的 JS/HTML 部署组合等。

有什么想法吗?

这是错误消息:

java.lang.ClassNotFoundException: com.spraklab.ilos.applet.Applet
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:195)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:249)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:179)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:160)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:690)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3045)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1497)
at java.lang.Thread.run(Thread.java:680)

最佳答案

在上面的代码中,您尝试切换安全小程序类加载器。从 Java 1.2 开始,这是不允许的。

关于java - 仅当 JAR 已签名时才会出现 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12158789/

相关文章:

java - 如何使用 Quarkus 解决 Infinispan JCache 拦截器中的异常 "Interceptor has no bindings"?

java - ArrayAdapter位置错误

java - 通过套接字传输动画 GIF

java - 无效标志 : -jar after upgrading java package to 1. 8.0_211

Java Applet 不适用于 Eclipse 中的任何代码

java - 在 java applet 程序中按下按钮时未获得所需的输出

java - 简单的 websocket 和静态文件示例

java - 如何通过命令行启用 jfr 的堆指标

java - 在 Runnable jar 文件中找不到 com.mysql.jdbc.Driver

java - 获取嵌套 .jar 中的 .class 文件