gpt4 book ai didi

Java程序从eclipse导出后无法运行

转载 作者:行者123 更新时间:2023-12-02 05:10:55 24 4
gpt4 key购买 nike

当我打开可运行的jar文件时,它仍然可以打开,但半秒后就卡住了,就像这样。(我无法发布图像,所以我将图像发布在这里:https://pbs.twimg.com/media/B4RN2_MCYAAi1DD.png)

它在 Eclipse 中运行良好。当我在 CMD 中运行它时,它显示:

Exception in thread "game" java.lang.NullPointerException: in
at javazoom.jl.decoder.Bitstream.<init>(Unknown Source)
at javazoom.jl.player.Player.<init>(Unknown Source)
at javazoom.jl.player.Player.<init>(Unknown Source)
at lian.xiangru.game.AudioHandler.<init>(AudioHandler.java:12)
at lian.xiangru.game.GameBoard.playSound(GameBoard.java:410)
at lian.xiangru.game.GameBoard.move(GameBoard.java:224)
at lian.xiangru.game.GameBoard.moveTiles(GameBoard.java:271)
at lian.xiangru.game.GameBoard.checkKeys(GameBoard.java:340)
at lian.xiangru.game.GameBoard.update(GameBoard.java:146)
at lian.xiangru.game.Game.update(Game.java:42)
at lian.xiangru.game.Game.run(Game.java:77)
at java.lang.Thread.run(Unknown Source)

我的资源似乎出了问题。

这是我的 playSound 方法:

    private void playSound() {
// how to play mp3 https://www.youtube.com/watch?v=f-7cgX_I220
AudioHandler sound = new AudioHandler(
SOUND_LIST[(int) Math.round((Math.log(highestValue) / Math.log(2))) - 1]);
sound.start();

}

这是我的 AudioHandler 类:

import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;

class AudioHandler extends Thread {

private Player playMP3;

public AudioHandler(String mp3) {
try {
playMP3 = new Player(getClass().getResourceAsStream(mp3));
} catch (JavaLayerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public void run() {

try {
playMP3.play();
} catch (JavaLayerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

列表是:

public static final String[] SOUND_LIST = { "/mayuri.mp3", "/mikoto.mp3",
"/gai.mp3", "/shougo.mp3", "/gintoki.mp3", "/inori.mp3",
"/yuzuru.mp3", "/misaki.mp3", "/armin.mp3", "/alphonse.mp3",
"/alphonse.mp3", "/akane.mp3", "/armin.jpg" };

public static final String[] QUOTE_LIST = { "/mayuri.txt", "/mikoto.txt",
"/gai.txt", "/shougo.txt", "/gintoki.txt", "/inori.txt",
"/yuzuru.txt", "/misaki.txt", "/armin.txt", "/alphonse.txt",
"/alphonse.txt", "/akane.txt", "/armin.txt" };

public static final String[] ICON_LIST = {"/mayuri.jpg", "/mikoto.jpg",
"/gai.jpg", "/shougo.jpg", "/gintoki.jpg", "/inori.jpg",
"/yuzuru.jpg", "/misaki.jpg", "/armin.jpg", "/alphonse.jpg",
"/alphonse.jpg", "/akane.jpg", "/armin.jpg"
};

谢谢!!

最佳答案

加载资源时出现NullPointerException通常意味着无法找到该资源。此行为与普通文件打开不同,不会引发异常。

您的 jar 中包含您的音频文件吗?如果没有,请确保在导出 Jar 时设置了正确的选项,以便将它们包括在内。如果您需要可重复性,更好的选择可能是在您的应用程序中引入真正的构建过程。

关于Java程序从eclipse导出后无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27345322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com