我刚从Java 6升级到Java 7 SDK,现在我的ant build中出现以下错误:
错误:包sun.security.pkcs11不存在
提供者p = new sun.security.pkcs11.SunPKCS11(是);
我正在运行Windows 7 64位。如果我切换回Java 6,我可以正常编译,但这不再是一个选项。我没有在线找到解决方案。有谁知道如何解决这个问题?
答案 0 :(得分:4)
您必须将应用程序转换为使用不受限制的API。当你做了这样的事情时,编译器会严格警告你 - 这是面对这些警告的结果。
请参阅Why Developers Should Not Write Programs That Call 'sun' Packages
答案 1 :(得分:3)
我遇到了同样的问题,我通过安装64位的32位JDK insteade来解决它,并确定它能正常工作。
答案 2 :(得分:3)
oracle oracle bug尚未发布API,tom和yassering的答案都是核心。
答案 3 :(得分:1)
由于Windows 64位中没有sunPKCS11支持,我假设您仅使用Windows 64位进行构建环境,而您的运行时可能是Linux或其他受支持的环境。
如果上述情况属实,那么为了使构建工作,从32位jdk复制sunpkcs11.jar并复制到jre \ lib \ ext下的64位jdk。这对我有用。
或者,等待jdk8固定的地方。
答案 4 :(得分:-1)
我有同样的错误。
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安装。我运行我的应用程序时遇到同样的问题。