元の回答 (削除済み) が間違っていたかどうかはわかりません。マニフェストの Permissions 属性は、ローカル アプレットでは無視されるべきではないため、これはバグです。
7u45 リリース ノートに記載されている同様の既知の問題があります。これは関連している必要があります。
元の質問について: Codebase: * ?
Codebase: localhost
これは、(Windows 上で) 正しい JNLP コードベース構文である に対して機能http://localhost
し、矛盾しません。file://localhost/C:/folder
マニフェストの Codebase 属性は、複数のエントリを許可します。確かに追加localhost
しても悪影響はありません。
アップデート:
Manifest-Version: 1.0
Implementation-Title: MyApplet
Implementation-Version: applet build
Built-By: bnicer
Application-Name: Slide Show
Created-By: 1.7.0_45-b18 (Oracle Corporation)
Caller-Allowable-Codebase: *
Implementation-Vendor: MyFirm
Ant-Version: Apache Ant 1.9.2
Trusted-Library: true
Application-Library-Allowable-Codebase: *
Built-On: 8 November, 2013 @ 13:40:10 GMT
Trusted-Only: true
Permissions: all-permissions
Main-Class: jtss
Codebase: www.mydomain.co.uk localhost 127.0.0.1 192.168.2.2
7u45 でアプレットをオフラインで実行すると、マニフェストに何を記述しても問題が発生すると思いますが、これは非常に残念なことです。
私が知る限り、.java.policy
ファイルをローカル ディレクトリに追加する古い方法は無意味であり、それも残念です。
より詳しい情報:
(バグのこと?)
アプレットが署名されている場合、Java コントロール パネルで公開証明書 (.csr、.p12、.cer) をインポートするオプションがありますSecurity > Manage Certificates > User > Signer CA.
。B) ブラウザでアプレットを実行する前のセキュリティ ポップアップは削除されます。
違いは、現在 (7u45): A) 発行元がわかっていることです。B) 「... マニフェストに Permissions 属性が含まれていません」という警告が表示される。
警告の後、アプレットが実行されないことが私の経験です。
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.access$100(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
... 14 more
Caused by: java.lang.NullPointerException
at sun.plugin2.applet.Plugin2ClassLoader.loadAllowedCodebases(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.getPermissions(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.getPermissions(Unknown Source)
at java.security.SecureClassLoader.getProtectionDomain(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
... 18 more
回避策はありますが、決して修正ではありませんが、証明書をSigner CA
ストアから削除することです。証明書を削除すると (やむを得ず、最後の手段として) 署名済みのローカル アプレットが次のように実行されます。
- 上記のいずれも、オンラインのアプレットには適用されません。
お気軽にコメントください。