从一些相当新的 JRE 版本开始,我不再能够在 JNLP 程序中执行 MD5 哈希。它抛出一个java.lang.NullPointerException
. 如果我运行与“普通”(非 JNLP)应用程序相同的应用程序,它工作正常。堆栈跟踪如下所示:
com.sun.jnlp.JNLPClassLoader.getPermissions(Unknown Source)
java.security.SecureClassLoader.getProtectionDomain(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
java.net.URLClassLoader.defineClass(Unknown Source)
java.net.URLClassLoader.access$100(Unknown Source)
java.net.URLClassLoader$1.run(Unknown Source)
java.net.URLClassLoader$1.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(Unknown Source)
com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
java.lang.ClassLoader.loadClass(Unknown Source)
java.lang.ClassLoader.loadClass(Unknown Source)
com.myapp.md5Hash(myapp.java:68)
最好的猜测是由于某些安全问题我被拒绝了?不知道为什么。我们已经准备好 JNLP 修复代码(用于修复 JNLP 链接问题)。想法?
当前调用的方法只是执行“MD5”的 MessageDigest 实例。我也试过DigestUtils
方法。无论哪种方式都存在同样的问题。