【问题标题】:NullPointerException when loading file from res folder - Java从 res 文件夹加载文件时出现 NullPointerException - Java
【发布时间】:2016-03-30 06:46:12
【问题描述】:

所以我使用这个代码:

    ClassLoader classLoader = getClass().getClassLoader();
    File audioFile = new File(classLoader.getResource("pop.wav").getFile());

    AudioInputStream audioStream = AudioSystem.getAudioInputStream(audioFile);

    AudioFormat format = audioStream.getFormat();

    DataLine.Info info = new DataLine.Info(Clip.class, format);

    Clip audioClip = (Clip) AudioSystem.getLine(info);
    audioClip.open(audioStream);
    audioClip.start();

但每次它都会给我一个 NullPointerException。 文件 (pop.wav) 在 src/res 中。但是,如果将它放在我的桌面上而不是 classLoader.getResource("pop.wav").getFile() 我把 C:/Users/gebruiker/Desktop/pop.wav 它工作。

【问题讨论】:

标签: java audio


【解决方案1】:

资源不是文件。

试试这个:

AudioInputStream audioStream = AudioSystem.getAudioInputStream(getClass ().getResourceAsStream ("/res/pop.wav"));

当然要检查该 pop.wav 的路径。有时 .jar ( /pop.wav ) 中的绝对路径更易于管理。

【讨论】:

  • 你的 jar 中的 pop.wav 在哪里?
  • 我不知道这是否重要,但是这个方法是在 mousePressed 事件上调用的
  • 在这种情况下尝试 /res/pop.wav 一次
  • 对不起,我不明白。我不是一个真正有经验的 Java 程序员。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-20
  • 2012-02-08
  • 1970-01-01
  • 2012-05-21
  • 2014-12-23
相关资源
最近更新 更多