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

Spi*_*iff 8 java intellij-idea sbt playframework

我收到以下错误,但我可以在 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
Run Code Online (Sandbox Code Playgroud)

Kac*_*cki 6

我对不同的包有类似的问题: package sun.security.x509 does not exist

我使用java 11编译项目。

就我而言,我必须Use '--release' option for cross-compilation在 Java 编译器设置中禁用。在此处输入图片说明


Spi*_*iff 5

这不是一个intellij问题。

您需要使用该-XDignore.symbol.file选项进行编译。一些内部包默认是隐藏的,除非您将此选项添加到 javac。

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

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

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

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