为什么我不能导入太阳包?

Ger*_*lla 4 java import java-package java-9 jshell

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

有些应用程序不能与java 9一起使用.也许有不兼容性?

dba*_*rev 8

看起来这与Java 9如何尝试支持真实的封装有关,这与过去的方式相反.可能发生了您的内部类暴露给消费者,因为您的公共API使用了这些内部类.Sun内部包有类似的问题.

Java 9的模块化故事中有三个主题:

  • 模块化JDK和JRE
  • 隐藏平台内部(例如sun.misc)
  • 应用程序开发人员的模块系统

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

针对您的特殊情况下,太阳的内部模块都没有可供导入默认情况下,这是一个很好的事情.

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

应该有"添加模块"支持以及"添加导出"和"模块路径",以允许人们探索自己的模块化代码. https://bugs.openjdk.java.net/browse/JDK-8166649

您希望跟踪该错误标记以查看此修复程序何时可用.它刚刚解决了4天前.

  • 好好调查!该解决方案应该在下周末在jdk9.java.net上的JDK 9早期访问版本中提供. (2认同)