我正在努力调整我的桌面应用程序以使用 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 这些选项不会有任何区别
最佳答案
正如 Alan Bateman 评论的那样,sun.audio 包 were removed from jdk9 .
我最终在我的代码中替换了 sun.audio 包的用法。
关于java-9 - 如何在 Java 9 中使用 sun.audio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49051745/