导出jar后没有声音

2023-11-25

我的应用程序有问题。当我在 Eclipse 中运行应用程序时,声音播放得很好,但如果我将应用程序导出到可运行的 jar,声音就不起作用。

方法,播放声音的地方:

public static synchronized void playSound() 
    {
            new Thread(new Runnable() 
            {
                // The wrapper thread is unnecessary, unless it blocks on the
                // Clip finishing; see comments.
                public void run() 
                {
                    try
                    {
                        Clip clip = AudioSystem.getClip();
                        AudioInputStream inputStream = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("sound.wav"));
                        clip = AudioSystem.getClip();
                        clip.open(inputStream);
                        clip.start(); 
                    } 
                    catch (Exception e) 
                    {
                        System.err.println(e.getMessage());
                    }
                }
            }).start();
        }

哪里可能有错误呢?


问题就出在这

AudioInputStream inputStream = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("sound.wav"));

JAR 文件中的内容不起作用getResourceAsStream出于任何原因。所以我将其替换为getResource:

AudioInputStream inputStream = AudioSystem.getAudioInputStream(getClass().getResource("sound.wav"));

这很好用。

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

导出jar后没有声音 的相关文章

随机推荐

  • 当两个结构相同的 git 仓库从来没有任何共同的历史记录时,它们可以合并吗?

    我有两个小的 git 存储库 这些项目都是从不同的点开始的 但最终收敛到一个非常相似的项目 相同的文件名 文件夹结构等 一个不是另一个的分支 但一个可以被认为是另一个的演变 如果我可以将两者合并 那就太好了repo2是的延续repo1 这是
  • Cloudfront Lambda@edge 根据查看者请求设置 cookie

    更新 更好地收集我的想法 我在查看器请求 Lambda 中为每个用户生成一个唯一标识符 UUID 然后根据该 UUID 选择要返回的缓存页面 这有效 理想情况下 该用户始终具有相同的 UUID 我必须在查看器请求中生成该 UUID如果该查看
  • 如何有效地找到点集合的边界框?

    我有几个点存储在数组中 我需要找到这些点的界限 即 包围所有点的矩形 我知道如何用简单的 Python 解决这个问题 我想知道是否有比数组上的朴素 max min 或内置方法更好的方法来解决问题 points 1 3 2 4 4 1 3 3
  • 如何围绕fabric.js中的一个指定点旋转?

    有人知道如何围绕 Fabric js 中的一个指定点旋转吗 例如 var line1 new fabric Line 70 20 70 100 stroke 000000 strokeWidth 6 我想根据其端点 70 100 而不是中心
  • 如何突出显示 UITableView 中的一行

    下面的代码似乎没有效果 我希望它以与点击一行时突出显示的方式相同的方式突出显示 UITableViewCell tableView UITableView tableView cellForRowAtIndexPath NSIndexPat
  • 将文件添加到现有 Zip 中

    我可以成功地将文件从 zip 文件夹提取到文件夹中 但我不太确定如何获取这些文件并将它们添加到现有的 zip 文件中 我将它们解压到桌面上名为 mod 的目录中 然后我需要将它们添加到另一个 zip 文件中 帮助 这是我的提取代码 ZipF
  • Android-Maven-Plugin v3.4.0 构建应用程序时找不到可绘制资源

    最近我开始 mavenizing 我的 Android 应用程序 我路上的障碍之一如下 在构建过程中 maven 插件无法找到 res 目录中的布局中使用的可绘制对象 我首先使用 android 快速启动原型开始 mavenizing mv
  • 构造函数和析构函数如何工作?

    我试图理解这段代码 class Person Represents a person population 0 def init self name some statements and population 1 def del self
  • 如何将集合视图单元格大小设置为与iOS中的集合视图完全相等?

    我想设置一个集合视图 它一次只显示一个元素 并且水平滚动 我想知道如果集合视图与超级视图 手机大小 具有相同的宽度 如何为两者设置相同的大小 任何帮助将不胜感激 简单回答 Add UICollectionViewDelegateFlowLa
  • 转换运算符重载不明确,编译器不同

    我已经看到了有关此问题的其他问题 但没有一个完整地解释它 是什么right编译器如何处理以下两种情况 我已经用 gcc 4 7 1 with std c 0x VS2010 和 VS2012 尝试过 并得到了不同的结果 示例1 struct
  • 我可以使用 PDO 准备语句来绑定标识符(表或字段名称)或语法关键字吗?

    我正在开发一个动态查询 它使用变量来指定表 字段 列和要搜索的值 我已经让查询在没有变量的情况下按预期工作 无论是在 phpMyAdmin 中 手动键入查询 还是在代码中通过将变量连接到完整的查询中 但是 当我使用bindParam or
  • Windows 上的 Node.js 和文件系统 - EBUSY 错误

    我是 Node js 新手 我正在尝试找出以下代码有什么问题 var fs require fs var dir C var files fs readdirSync dir for var i 0 i lt files length i
  • 在我的项目中哪里可以找到 proguard.cfg?

    我想启用ProGuard对于我的应用程序和本文档ProGuard它说proguard cfg 我必须修改某些内容的地方 是自动生成的 但是如果我查看我的项目文件夹 我只会看到一个proguard project txt文件 但我没有看到pr
  • *.h 或 *.hpp 用于您的类定义

    我一直用一个 h文件我的类定义 但在阅读了一些 boost 库代码后 我意识到它们都使用 hpp 我一直讨厌该文件扩展名 我想主要是因为我不习惯它 使用有什么优点和缺点 hpp over h 以下是对 C 和 C 头文件进行不同命名的几个原
  • 将数组转换为嵌套对象

    假设我有以下数组 产品 型号 版本 我想要一个对象 例如 product model version 然而 该数组是动态的 因此它可以有 2 个 3 个或更少的项目 如何以最有效的方式实现这一目标 Thanks 只需将其翻过来 然后将内部对
  • 避免在复制构造函数和运算符=中重复相同的代码

    在 C 中 当类包含动态分配的数据时 显式定义复制构造函数 operator 和析构函数通常是合理的 但这些特殊方法的活动是重叠的 更具体地说 operator 通常首先进行一些破坏 然后进行与复制构造函数中类似的处理 我的问题是如何以最佳
  • Android 通知未在 Marshmallow 中显示颜色图标

    我正在制作应用程序 我从中获取数据Parse并将数据传输到Notification以生成并向用户显示 但由于某种原因 我无法在棉花糖中显示正确的彩色图标 在其他所有 Android 版本中 它都工作得很好 但在 Marshmallow 中
  • 如何在 Android 中签署 PDF

    我必须在 Android 应用程序中实现一个允许我签署 PDF 的功能 当我说 签名 时 我指的是用户附加到文档末尾的数字签名 名字和名字 我可以使用三星 Note 4 带手写笔 那么在显示屏上 书写 就不成问题了 问题是 可以使用 ite
  • 我现在应该如何使用带 PCL 或不带 PCL 的 Azure 移动服务?

    我更新到最新版本的 Xamarin 其中 完全支持 PCL 我现在如何使用 Azure 移动服务 如果我创建 PCL lib 并尝试使用 NuGet 添加它 则无法安装 Newtonsoft Json 5 0 8 因为它需要缺少 porta
  • 导出jar后没有声音

    我的应用程序有问题 当我在 Eclipse 中运行应用程序时 声音播放得很好 但如果我将应用程序导出到可运行的 jar 声音就不起作用 方法 播放声音的地方 public static synchronized void playSound