Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的程序100%从编译器put运行,而不是100%从dist运行_Java_Ioexception - Fatal编程技术网

Java 我的程序100%从编译器put运行,而不是100%从dist运行

Java 我的程序100%从编译器put运行,而不是100%从dist运行,java,ioexception,Java,Ioexception,如果我从编译器netbeans运行java progeam,它将100%运行。如果我从文件管理器运行它,它将位于项目内的dist文件夹中(该程序有一个运行wav文件的按钮)按钮有一个catch ioexception如果我从编译器运行它声音将运行put如果我从dist文件夹运行它或移动然后运行到任何路径有ioexception作为参数的catch将运行exception我使用audioSystem并使用Clip类对其进行咳嗽因此如果第一种方式出现任何异常,Clip类将尝试运行声音文件代码: pu

如果我从编译器netbeans运行java progeam,它将100%运行。如果我从文件管理器运行它,它将位于项目内的dist文件夹中(该程序有一个运行wav文件的按钮)按钮有一个catch ioexception如果我从编译器运行它声音将运行put如果我从dist文件夹运行它或移动然后运行到任何路径有ioexception作为参数的catch将运行exception我使用audioSystem并使用Clip类对其进行咳嗽因此如果第一种方式出现任何异常,Clip类将尝试运行声音文件代码:

public void getSoundData(int delay){
  ActionListener taskPerformer = new ActionListener(){
    @Override
    public void actionPerformed(ActionEvent evt){
      try{
        int random=(int)(Math.random()*12+1);
        InputStream input = new FileInputStream("src/azcar/sounds/"+String.valueOf(random)+".wav");
        AudioStream audio = new AudioStream(input);
        AudioPlayer.player.start(audio);
      } catch (Exception exc) {
        try {
          Clip clip = AudioSystem.getClip();
          int random=(int)(Math.random()*12+1);
          AudioInputStream input = AudioSystem.getAudioInputStream(new File("src/azcar/sounds/"+String.valueOf(random)+".wav"));
          clip.open(input);
          clip.start();
        } catch (LineUnavailableException ex) {
          JOptionPane.showMessageDialog(null, ex);
        } catch (UnsupportedAudioFileException ex) {
          JOptionPane.showMessageDialog(null, "نوع ملفات الصوت غير مدعوم");
        } catch (IOException ex) {
          JOptionPane.showMessageDialog(null, "لم أتمكن من االوصول لملفات الصوت");
        }
      }
    }
  };
  Timer timer = new Timer(delay*1000*60,taskPerformer);
  timer.setRepeats(true);
  timer.start();
}

在上面,您使用的是相对路径来查找wav文件。从项目的根文件夹中,您将阅读'src/azcar/sounds/.wav',但从dist文件夹中,您实际上是在阅读'dist/src/azcar/sounds/.wav'


您可以首先输入文件夹的绝对路径来开始测试。之后,您可以将声音文件夹路径作为变量传递给应用程序。

不确定这里的问题是什么,也许可以详细说明您的解决方案并与他人共享代码,以便更好地理解该问题?谢谢我编写了代码如果没有“src/azcar/sounds”,您使用的路径是相对的将可执行文件移动到的文件夹中,程序将找不到所需的文件