コンソール出力
以下に示す 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")
Snake.java
おそらく、コードの 37 行目で次のようなことを行っています。
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
信頼できるアプレットであっても、これは許可されません。アプレットは、VM を他のアプレットと共有する場合があります。
私の予測が正しい場合は、代わりに次のことを試してください。
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 コンソールでクラス キャッシュを必ずフラッシュしてください。