这是一款100%胜利的控制台应用程序。 所以这就是问题所在。
我想加载要放在jar中的文件music.xm。 当我尝试通过相对路径调用文件时出现问题。它不是java项目的开始目录,而是我的Windows用户文件夹 如果我打电话
File music = new File("\\music.xm");
javax.sound.sampled.UnsupportedAudioFileException: /C:/Users/XXXX/Desktop/./music/music.xm
如果我打电话
File music = new File(".\\music.xm");
我得到了
javax.sound.sampled.UnsupportedAudioFileException: /C:/music.xm
答案 0 :(得分:1)
如果它在你的罐子里,你可以使用
getclassLoader().getResourceAsStream("music.xm")
您可以随意使用此inputStream。但请记住,路径应该是相对于类加载器的类路径根。
此外,如果您确定“music.xm”作为independent file on filesystem
存在于.class文件的固定相对位置,您还可以使用:
getclassLoader().getResource("music.xm")
您可以查看on SO,此处查看documentation。