控制台输出
当我打开下面的 HTML 时看到的一些控制台输出。
..
security: SSV validation: running: 1.7.0_25, requested: null, range: null
network: Created version ID: 1.7.0.25
network: Created version ID: 1.7.0.25
security: continue with running version
basic: exception: java.lang.ExceptionInInitializerError.
java.lang.RuntimeException: java.lang.ExceptionInInitializerError
...
Caused by: java.lang.ExceptionInInitializerError
at Snake.<init>(Snake.java:37)
...
Caused by: java.security.AccessControlException:
access denied ("java.lang.RuntimePermission" "exitVM.0")
... 26 more
basic: Removed progress listener: sun.plugin.util.ProgressMonitorAdapter@169a11f
security: Reset deny session certificate store
分析
特别注意:
at Snake.<init>(Snake.java:37)
也:
..AccessControlException: access denied ("java.lang.RuntimePermission" "exitVM.0")
可能在代码的第 37 行Snake.java
正在执行以下操作:
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
即使在受信任的小程序中,也不允许这样做。一个小程序可能与其他小程序共享一个虚拟机。
如果我的预测是正确的,请尝试:
jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
否则,好吧.. 为了尽快获得更好的帮助,请发布SSCCE。或至少前 37 行Snake.java
. :)
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>Applet</h1>
<applet
code = "Snake"
archive = "Snake.jar"
height=300
width=300
codebase="https://sites.google.com/site/zmchenryfilecabinet/filecabinet/">
</applet>
</body>
</html>
类缓存
作为旁白。如果您仍然遇到 NCDFE 问题(通常是小程序开发)。
要在开发过程中绕过类/代码缓存,请确保在软件测试运行之间刷新 Java 控制台中的类缓存。