【问题标题】:Why can't I import sun packages?为什么我不能导入 sun 包?
【发布时间】:2016-10-28 21:32:15
【问题描述】:

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

有些应用程序不适用于 java 9。也许存在不兼容问题?

【问题讨论】:

    标签: java import java-9 java-package jshell


    【解决方案1】:

    这似乎与 Java 9 如何尝试支持 real 的封装有关,与过去的做法不同。您的内部类可能会暴露给消费者,因为您的公共 API 使用了这些内部类。 Sun 内部包也有类似的问题。

    Java 9 的模块化故事包含三个主题:

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

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

    对于您的具体情况,默认情况下 sun 内部模块不可用于导入,这是一个的事情。

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

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

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

    【讨论】:

    • 很好的调查!该修复程序应该会在下周末之前在 jdk9.java.net 上的 JDK 9 早期访问版本中提供。
    猜你喜欢
    • 2021-04-17
    • 2022-06-12
    • 1970-01-01
    • 2020-12-04
    • 2018-08-30
    • 2020-12-23
    • 2018-01-12
    • 2021-11-24
    • 2020-04-24
    相关资源
    最近更新 更多