IntelliJ说软件包不存在,但我可以访问该软件包

2022-09-03 09:51:04

我收到下面的错误,但我可以在rt.jar中找到该软件包。我可以看到从项目结构中使用的JDK。我不确定缺少什么。

Error:(6, -1) Play 2 Compiler: 
 C:\user\projects\portal\app\com\example\security\cert\X509Cert.java:6: package sun.security.pkcs10 does not exist
 import sun.security.pkcs10.*;
 C:\user\projects\portal\app\com\v\security\cert\GenerateCSR.java:75: cannot find symbol

答案 1

我在不同的软件包上遇到了类似的问题:package sun.security.x509 does not exist

我使用java 11来编译项目。

在我的情况下,我不得不在Java编译器设置中禁用。Use '--release' option for cross-compilationenter image description here


答案 2

这不是一个智能问题。

您需要使用该选项进行编译。默认情况下,某些内部包处于隐藏状态,除非您将此选项添加到 javac。-XDignore.symbol.file

https://bugs.openjdk.java.net/browse/JDK-7141442

sun.security.x509.CertAndKeyGen 和 sun.security.pkcs.PKCS10 - 在 JDK8 中缺失。实施建议

此外,用户@user180100的评论也是相关且重要的。

sun.* 包不是受支持的公共接口的一部分。
直接调用 sun.* 包的 Java 程序不能保证在所有兼容 Java 的平台上工作。实际上,即使在同一平台上的未来版本中,这样的程序也不能保证工作。


推荐