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

时间:2016-11-06 10:18:34

标签: java intellij-idea playframework sbt

我收到以下错误,但我可以在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

4 个答案:

答案 0 :(得分:5)

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

我使用 java 11 编译项目。

就我而言,我不得不在 Java 编译器设置中禁用 Use '--release' option for cross-compilationenter image description here

答案 1 :(得分:1)

这不是intellij问题。

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

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

sun.security.x509.CertAndKeyGen and sun.security.pkcs.PKCS10 - missing in JDK8. Implementation suggestions

@ user180100用户的评论也很重要。

  

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

答案 2 :(得分:0)

我对其他包有类似的错误。

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

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

OR

$gradle clean build

希望这有帮助!

答案 3 :(得分:0)

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

1.项目SDK版本: enter image description here

2.项目字节码版本 enter image description here