Java项目
我的maven项目在idea运行能正常播放音乐,
但是打包成jar后,把jar复制到其它文件夹单独运行会报错,应该是路径的问题
请问应该怎么解决呢?
可以改成使用绝对路径,也可以把相对路径替换掉,一般都是把资源目录和jar包放在同一个目录下的,所以可以像下面这样写,亲测在linux和win的jar包运行起来都是没问题的。也可以改成其他朋友建议的使用配置文件来配置路径,这样更加灵活。
//jar包运行时读这个路径
private static String getMusicPath() {
String path = AllKeyListener.class.getProtectionDomain().getCodeSource().getLocation().getPath();
//把jar包名字替换成同目录下的另一个目录,一般都是把资源目录和jar包放在同一个目录下
path.replaceAll("xxx.jar", "Music");
return path;
}
把文件路径都写成绝对路径
路径能做成配置项就做成配置项,而不是代码中写死
不知道你的这个是否支持classpath方式获取路径,你可以试一下。
path改成"classpath:music/"
ClassPathResource classPathResource = new ClassPathResource("Music/ngm.mp3");
InputStream bis =classPathResource.getInputStream();
你试试用这种方式去读取文件呢