gpt4 book ai didi

java - 将内部可运行类导出到 jar (Clips)

转载 作者:行者123 更新时间:2023-12-01 04:58:54 25 4
gpt4 key购买 nike

我在导出我正在处理的项目时遇到问题,该项目正在调用通过实现可运行线程来线程化事件的内部类。它在 eclipse 中可以正常工作,但是导出时将无法启动内部类。这只发生在实现了 runnable 的类中。

这只发生在导出的 jar 格式中,但在 eclipse 中可以完美运行。

我正在调用线程:

new Thread(new SomeRunnable()).start();

SomeRunnable 在哪里

public class SomeRunnable implements Runnable {

@Override
public void run() {
//Create a clip
try {
Clip clip;
clip = AudioSystem.getClip();
AudioInputStream audioIn = AudioSystem.getAudioInputStream(soundFile);
clip.open(audioIn);
clip.loop(reps);
} catch (LineUnavailableException e1) {
e1.printStackTrace();
System.exit(0);
} catch (UnsupportedAudioFileException e1) {
e1.printStackTrace();
System.exit(0);
} catch (IOException e1) {
e1.printStackTrace();
System.exit(0);
}
System.out.println("Successful.");
}

当导出为可运行的jar格式时,程序将正确启动并显示GUI,但是当它被告知运行线程SomeRunnable时,它不会执行任何操作,甚至不会进入try catch语句,因为它没有播放剪辑,也不退出程序。这表明 jar 无法识别类文件,并且不会从 main 方法中调用它们。

什么会导致 jar 的工作方式与 eclipse 处理代码的方式不同?

最佳答案

事实证明,实际的解决方案是我将声音文件存储在 jar 中,因此我对目录的引用不起作用,因为它已经移动了目录。当声音文件移动到 jar 外部时,它会工作并读取文件并运行线程。

关于java - 将内部可运行类导出到 jar (Clips),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13638875/

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