我不知道我的原始答案(已删除)是错误的。清单中的 Permissions 属性不应在本地小程序中被忽略,因此,这是一个错误。
7u45 发行说明中描述了类似的已知问题。这一定是相关的。
至于原来的问题: Codebase: * ?
Codebase: localhost
它适用于http://localhost
并且不矛盾file://localhost/C:/folder
,这(在 Windows 上)是正确的 JNLP 代码库语法。清单中的 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.
过去导入证书可确保: A) 小程序发布者是已知的。B) 在浏览器中运行小程序之前的安全弹出窗口将被删除。
不同之处在于现在(7u45):A)发布者是已知的。B)您收到“...清单不包含权限属性”警告。
在警告之后,根据我的经验,小程序将无法运行。
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
存储中删除证书。在删除证书时(绝望地,作为最后的手段)签名的本地小程序运行如下:A)未知的发布者等。B)您会看到一个安全对话框,以及缺少权限属性警告。
随意发表评论。