我刚刚从 Java 6 升级到 Java 7 SDK,现在在我的 ant 构建中出现以下错误:
错误:包 sun.security.pkcs11 不存在
Provider p = new sun.security.pkcs11.SunPKCS11(is);
我正在运行 Windows 7 64 位。如果我切换回 Java 6,我可以编译得很好,但这不再是一种选择。我没有太多运气在网上找到解决方案。有人知道如何解决这个问题吗?
您必须将您的应用程序转换为使用不受限制的 API。当你做了这样的事情时,编译器会非常严格地警告你——这是面对这些警告继续进行的结果。
该 API 尚未由 oracle oracle bug发布,tom 和 yassering 的答案都是正确的。
我遇到了同样的问题,我通过安装 32 位 JDK 而不是 64 位来解决它,并确保它可以工作。
由于 Windows 64 位不支持 sunPKCS11,我假设您仅将 Windows 64 位用于构建环境,并且您的运行时可能是 linux 或其他受支持的环境。
如果上述情况属实,那么为了使构建工作,将 sunpkcs11.jar 从 32 位 jdk 复制并复制到 jre\lib\ext 下的 64 位 jdk。这对我有用。
或者,或者等待其固定的 jdk8。
我有同样的错误。
Only a type can be imported. sun.security.pkcs11.wrapper.CK_AES_CTR_PARAMS resolves to a package
我安装了带有 jdk 7x64 的 Windows 7 x64,然后用 jdk 7x32 替换。我还确保我的 JAVA_HOME 设置为新的 jdk 安装。当我运行我的应用程序时,我遇到了同样的问题。