Java 从项目地图中播放文件

Java 从项目地图中播放文件,java,netbeans,Java,Netbeans,我正在用netbeans(不适用于android)制作一个Java音乐播放器应用程序。我们在项目中创建了一个资产文件夹,其中包含音乐播放器应该播放的歌曲。我们所有的功能都在工作,除了我们不知道如何从项目地图中调用歌曲。我们现在已经把它硬编码到一个特定的位置,但在不同的计算机上是行不通的 是否有人提供了解决方案,以便我们可以从项目地图中调出歌曲?鉴于您的项目中有一个资产文件夹,您可以执行以下操作: initializeAudio("Assets/my_cool_song.wav"); 其中,in

我正在用netbeans(不适用于android)制作一个Java音乐播放器应用程序。我们在项目中创建了一个资产文件夹,其中包含音乐播放器应该播放的歌曲。我们所有的功能都在工作,除了我们不知道如何从项目地图中调用歌曲。我们现在已经把它硬编码到一个特定的位置,但在不同的计算机上是行不通的


是否有人提供了解决方案,以便我们可以从项目地图中调出歌曲?

鉴于您的项目中有一个
资产
文件夹,您可以执行以下操作:

initializeAudio("Assets/my_cool_song.wav");
其中,
initializeAudio
依赖于
Clip
对象的类级声明:

private void initializeAudio(final File url) {
    try {
        if (clip != null) stopPlay();
        AudioInputStream inputStream = AudioSystem.getAudioInputStream(url);
        clip = AudioSystem.getClip();
        clip.open(inputStream);
    } catch (Exception e) {
        stopPlay();
        System.err.println(e.getMessage());
    }
}
这在所有带有项目(或JAR)的计算机上都有效,并且
initializeAudio(“/Users/myusername/Developer/Projects/AudioApp/Assets/my_cool_song.wave”)不起作用是因为一个依赖于硬编码的绝对路径,而另一个依赖于相对于项目结构的文件路径。创建相对路径时,假设项目的基本目录是所有存在的目录


因此,例如,如果您的项目结构是一个
MyProject
文件夹,其中包含子文件夹
Assets
src
bin
util
,并且您希望引用
util
文件夹中的某些项,按如下方式传递路径:
util/my_cool_file.jpeg

我不太清楚您的意思,但是可以由用户定义的属性文件呢?你可以在属性文件中设置歌曲的路径,然后从应用程序中加载。我想你正在寻找。如果我理解正确的话,你只需要找到音乐的相对路径。