为什么我不能导入 sun 包?

Why can't I import sun packages?

我从 https://jdk9.java.net 下载了 java 9 并安装在我的 Windows 10 机器上。
Java9有jshell,我可以用来评估和学习java编程。
一些示例导入 sun 包,例如 sun.audio.* 等。但是,在 jshell 中,每次我尝试导入任何 sun 包时,它都说 sun 包不存在。

某些应用程序无法使用 java 9. 可能存在不兼容性?

这似乎与 Java 9 试图支持 real 的封装有关,与过去的做法相反。您的内部 类 可能已经暴露给消费者,因为您的 public API 使用了那些内部 类。 Sun 内部软件包也有类似的问题。

There are three topics in the modularity story for Java 9:

  • Modularize the JDK and JRE
  • Hide platform internals (e.g. sun.misc)
  • A module system for application developers

http://paulbakker.io/java/java-9-modularity/

对于您的具体情况,默认情况下无法导入 sun 内部模块,这是一件好事

也就是说,由于修复,可以将模块添加到 JShell。

There should be "add modules" support as well as "add exports" and "module path", to allow people to explore their own modular code. https://bugs.openjdk.java.net/browse/JDK-8166649

您想跟踪该错误票以查看此修复程序何时可用。 4天前刚解决