较新版本的 JRE 不会加载音库,但较旧版本会加载

2023-12-20

我有以下代码尝试加载音库。我已经使用 JRE 1.6.03 和 1.6.43 在 Windows 7 上测试了代码。旧版本的 JRE (1.6.03) 工作正常,但新版本会引发异常。这是怎么回事?

public Main() {
    try {
        Synthesizer synth = MidiSystem.getSynthesizer();
        synth.open();
        BufferedInputStream soundBankStream = new BufferedInputStream(
                getClass().getClassLoader().getResourceAsStream(
                        "soundbank.gm"));
        synth.loadAllInstruments(MidiSystem.getSoundbank(soundBankStream));
    } catch (MidiUnavailableException e) {
        e.printStackTrace();
    } catch (InvalidMidiDataException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

.

F:\>java -version
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_03-b05, mixed mode)

F:\>java -jar Test2.jar

F:\>"C:\Program Files\Java\jre6\bin\java.exe" -version
java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)

F:\>"C:\Program Files\Java\jre6\bin\java.exe" -jar Test2.jar
javax.sound.midi.InvalidMidiDataException: cannot get soundbank from stream
        at javax.sound.midi.MidiSystem.getSoundbank(Unknown Source)
        at com.gulshansingh.test.Main.<init>(Main.java:24)
        at com.gulshansingh.test.Main.main(Main.java:14)

您可以从这里下载音库:http://www.oracle.com/technetwork/java/soundbanks-135798.html http://www.oracle.com/technetwork/java/soundbanks-135798.html


复制粘贴自Java 声音 API:声音库 http://www.oracle.com/technetwork/java/soundbanks-135798.html page

Java声音API

此页面提供了不同的音库供您下载和使用 与Java声音。声音库对于正确操作是必要的 与 Java Sound 一起提供的内部软件合成器。默认情况下, Windows 版本的 J2RE 不附带音库,因此您 需要手动安装一个才能使用Java Sound的MIDI引擎。爪哇 声音有一个后备机制,如果没有,则使用硬件 MIDI 端口 音库可用,但它会妨碍可靠且一致的 MIDI 播放,因此建议 Java 安装音库 声音。

如您所见,Java Sound API 需要安装,因此如果您安装了较新的 JDK,则必须重做安装 http://www.oracle.com/technetwork/java/soundbanks-135798.html#install.

一个错误似乎接近您的问题:4887447 https://bugs.java.com/bugdatabase/view_bug?bug_id=4887447,存在解决方法,但如果banksound位于JAR中则不存在

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

较新版本的 JRE 不会加载音库,但较旧版本会加载 的相关文章

随机推荐

  • 如何在一次 ajax 调用中将多个数组传递给控制器​​方法 ASP.net MVC 4

    我有多个数组想要从视图传递到控制器方法中 为此 我将这些数组转换为 JSON 对象 然后 创建 AJAX 调用 但如何立即发送这些 JSON 对象 var json InstallationControl JSON stringify ar
  • 如何将任意数据粘贴到 TMemo 中?

    复制和粘贴文本很容易 因为它内置于 TMemo 中 但它似乎只能处理文本 不过 在我看来 任何类型的数据都可以表示为字符串 如果我从另一个程序复制一些任意数据并希望将其粘贴到 TMemo 中 如何让 Delphi 将其接受为原始字符串 如果
  • 从Android设备读取数据库文件

    我一直在尝试从我的 Android 应用程序中提取 SQLite 数据库的副本以供开发 我的第一次尝试是打电话 adb shell cd data data cd com example app cd databases 但后来我被困在这里
  • jQuery DatePicker 问题:设置当前日期

    日期选择器setDate方法 如上所述here http docs jquery com UI Datepicker method setDate没有按预期工作 日期选择器始终获取浏览器的当前日期 但是我要设置我选择的当前日期 target
  • 快速分割数组的优雅方法

    给定任何类型的数组和所需的子数组数量 我需要以下输出 print 0 1 2 3 4 5 6 splitInSubArrays into 3 0 3 6 1 4 2 5 输出必须包含正确数量的子数组 即使没有 足够 的元素来填充这些子数组
  • 如何找到文本框中光标的位置? C#

    我有一个标准的 WinForms TextBox 我想在文本中的光标位置插入文本 如何获取光标的位置 Thanks 无论是否选择任何文本 选择开始 http msdn microsoft com en us library system w
  • ASP.Net MVC 中通过 ajax 传递列表

    我想通过 AJAX 传递列表 我怎样才能做到这一点并在运行时赋值 我正在这样做 但它传递了空值 这是我的代码 JQuery for var i 0 i lt 5 i aabc id i color Level i var str2 aabc
  • 使用 LINQ 连接两个列表

    我有两个列表 list1 和 list2 列表1包含 1 a 2 b 3 c 4 d 列表2包含 3 c 4 d 5 e 我想要使 用 LINQ 以下列表 1 a 2 b 3 c 4 d 5 e List1 Concat List2 Whe
  • 在命令行上运行的 C++ 代码覆盖工具[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何根据设备屏幕尺寸调整集合视图单元格的大小?

    我注意到单元格总是遵循尺寸检查器中的定义 即使我已经应用了 UICollectionViewDelegateFlowLayout 看起来就是这样 但我希望这些单元格看起来更像更小的 iPhone 屏幕上的样子 实施sizeForItemAt
  • 使用实体框架的最小存储库实现

    我正在尝试在我的应用程序中实现最小的通用存储库模式 我有一个非常小的界面用于查询和保存数据 public interface IRepository IQueryable
  • 反应子/父组件 - onChange 事件只接受一个字符并且不保留值

    在 ReactJS 中 在我的子组件中 输入 gt 文本上的 onChange 事件仅采用一个值 并且不会在每次按键时保留先前的值 我正在尝试捕获子表单中的输入 并希望将其传输给父表单 实际上 我正在尝试重用子表单来创建和编辑页面 我的完整
  • 如何使用 TailwindCSS 禁用环形阴影?

    这就是我的问题的样子 见环 看图 https i stack imgur com RLCE0 png 使用Chrome的inspector发现与 tw ring shadow 所以我尝试添加类ring 0 and ring offset 0
  • 如何在 JavaFX 8 中创建自定义 3D 模型?

    我尝试使用官方教程在 JavaFX 应用程序中制作一架飞机 并有以下代码 Image diifuseMap new Image getClass getResource t jpg toExternalForm TriangleMesh p
  • Django:如何在给定实际值和选择的情况下访问模板中 ChoiceField 的显示值?

    我有一个绑定形式的 ChoiceField 其选择是 all All users group Selected groups none None 在模板中 我可以毫无问题地访问其绑定值 要存储的实际值 每个元组的第一个元素 和选择 有了这些
  • PayPal + RESTful API + WebHooks + 自签名证书

    我一直在使用 PayPal 的 REST API 并且能够毫无问题地处理销售 退款等 但我在网络钩子方面遇到了问题 我在沙箱中配置了一个 webhook 它从不将信息发布到 webhook URL 甚至不尝试根据访问日志 由于 wbehoo
  • webapp 和 web.py 之间的区别

    Webpy org 谁使用 web py http webpy org web py 启发了 Web 框架 我们在 FriendFeed 和 网络应用程序中使用 App 附带的框架 引擎 布雷特 泰勒 FriendFeed 联合创始人和原创
  • 如何从远程 php 脚本响应获取二进制文件?

    我正在调用一个脚本 该脚本为我提供了一个带有二进制数据的二进制文件 12345 cl 脚本已完成 并且正在运行 如果我将其粘贴到导航器上 我会得到二进制文件 现在我有一个问题 如何将脚本的响应转换为二进制资源以在我的应用程序中使用它 目前
  • 在 LaTeX Beamer 中调整矩阵大小

    您好 我想知道如何在投影仪环境中调整矩阵大小 目前我正在编写以下代码 begin align left begin array ccccccc 0 1 1 0 0 1 1 0 ddots 0 1 1 0 end array right
  • 较新版本的 JRE 不会加载音库,但较旧版本会加载

    我有以下代码尝试加载音库 我已经使用 JRE 1 6 03 和 1 6 43 在 Windows 7 上测试了代码 旧版本的 JRE 1 6 03 工作正常 但新版本会引发异常 这是怎么回事 public Main try Synthesi