为什么我不能导入 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
对于您的具体情况,默认情况下无法导入 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天前刚解决
我从 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
对于您的具体情况,默认情况下无法导入 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天前刚解决