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

问题描述 投票:0回答:6

我收到以下错误,但我可以在 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
java intellij-idea playframework sbt
6个回答
34
投票

我对不同的包也有类似的问题:

package sun.security.x509 does not exist

我使用java 11来编译该项目。

就我而言,我必须在 Java 编译器设置中禁用

Use '--release' option for cross-compilation


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


4
投票

文件>项目结构>项目>项目SDK下的项目SDK版本必须与文件>构建、执行、部署>编译器>Java编译器>下的java编译器项目字节码版本相同>在您的项目下查找“项目字节码版本” “使用‘--release....’”复选框

1.项目SDK版本:

2.项目字节码版本


3
投票

我对不同的包也有类似的错误。

我们使用的软件包已映射到网络驱动器,而我访问该映射驱动器的凭据已过期,因此我重新进行了身份验证并尝试了

IntelliJ:文件 -> 使缓存无效/重新启动

$gradle clean build

希望这有帮助!


0
投票

点击项目并选择 Maven->Reload 这也可以解决它,如果依赖于我们的同步


0
投票

我的电脑在编写代码时突然蓝屏。返回 IDE 时,我遇到了此异常 Windows 客户端版本默认情况下未启用 Java Minidumps,我通过更新/重新安装 JDK 解决了这个问题。

解决上述错误后,该依赖关系不再可见。我注意到我的 IDE 现在指向新更新的 JDK。

我通过转到 > 文件 > 项目结构 > 项目更新了项目的 JDK 版本:从这里,我选择了 JDK 1.8.0_65。

请参阅屏幕截图以获得更清晰的信息。

© www.soinside.com 2019 - 2024. All rights reserved.