有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Eclipse中听起来不错,但在runnable JAR文件中没有声音

当我在Eclipse中运行应用程序时,声音效果很好,但如果我将应用程序导出到runnable jar,声音就不起作用了

我在网上搜索了很多,他们都使用getResourceAsStream,但我没有找到FileInputStream的解决方案

在jar文件的进度栏中。wav位于根目录,但即使是soundFile = "progress_bar.wav"也不起作用

src
--控制器
----文件管理器。java
--res
----进步吧。wav

public void display_L11_errors(final JProgressBar pBar, String... args) throws IOException
{
  String soundFile = "res/progress_bar.wav";
  InputStream in;
  AudioStream audioStream = null;
  try {
        in = new FileInputStream(soundFile);
        audioStream = new AudioStream(in);
        AudioPlayer.player.start(audioStream);
  } catch (IOException e1) {  e1.printStackTrace();  }

  //for loop

  AudioPlayer.player.stop(audioStream);
}

有谁能给我一个答案吗

编辑: 正如@greg-449告诉我的,Jar中的条目不是文件,所以不能使用FileInputStream访问它们

解决方案:

AudioStream audioStream = null;
audioStream = new AudioStream(FileManager.class.getResourceAsStream ("/progress_bar.wav"));
AudioPlayer.player.start(audioStream);
//for loop
AudioPlayer.player.stop(audioStream);

共 (2) 个答案

  1. # 1 楼答案

    1. 在项目中创建“文件夹源”。右键点击你的项目,找到一个叫做这样的文件夹

    2. 通过拖动将wav文件放入文件夹源中。但是直接在IDE中

    3. 编译项目并保存它

    现在,当你打开你的工作IDE文件夹(保存文件夹)时,你的wav文件应该是你的源文件夹和bin文件夹,而不是其他地方。不要将文件放入bin文件夹。将在运行程序时自动添加

    注意:在Java项目中这样调用wav文件:“Name of wav file.wav”

    不需要文件的路径

    保存可执行jar文件后,尝试从源代码中删除wav文件。检查它是否像那样工作。应该可以在其他设备上运行

    编辑:也许声音在IDE中不起作用,但保存的jar文件会。。。要在IDE中工作,请复制工作区文件夹中的wav文件,但要导出时请将其删除

    我正在使用Eclipse,让它工作起来有点棘手,但一旦完成,就完成了。取决于哪个图书馆使用它

  2. # 2 楼答案

    在“src”文件夹之外创建一个单独的文件夹,如“res”,并将文件保存在其中,并使用URL引用文件:

    URL url = <NameOfClass>.class.getResource("/progress_bar.wav");
    

    然后右键单击项目来配置构建路径>;构建路径>;配置构建路径>;来源>;添加文件夹>;选中“res”,按OK,再按OK,然后再次尝试导出项目

    改变

    in = new FileInputStream(soundFile);
    

    in = new FileInputStream(url);