【问题标题】:how to use sun.audio with java 9如何在 java 9 中使用 sun.audio
【发布时间】:2018-03-01 14:22:36
【问题描述】:

我正在调整我的桌面应用程序以使用 jre9 运行 我明白了

java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: sun/audio/AudioStream

我通过添加 jvm args 解决了 sun API 的其他一些问题 --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.swing=ALL-UNNAMED 但在这些情况下,错误属于java.lang.IllegalAccessError 类型,因此导出模型解决了问题。

知道如何继续使用sun.audio?当然,我可以尝试切换到不同的库,例如 javax.sound,但我有一些我不想碰的遗留代码。

我尝试了一些选项,例如 --add-open--illegal-access,但假设 sun.audio api 已从 sdk 中删除,这些选项不会有任何区别

【问题讨论】:

  • sun.audio 包是 JDK 内部 API,它在 JDK 9 中被删除(参见 bugs.openjdk.java.net/browse/JDK-8050465)。 JavaSound 从 1.3 开始就在 Java SE 中。
  • 谢谢艾伦!我可以通过导入包含该包的特定 jar 来使用它吗?
  • 这是一个 JDK 内部 API,我不知道在 JDK 8 和更早版本之外有什么方法可以使用它。

标签: java-9 sun


【解决方案1】:

正如 Alan Bateman 所说,sun.audio 包 were removed from jdk9

我最终在我的代码中替换了 sun.audio 包的使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    相关资源
    最近更新 更多