java工程打包部署到linux下根据url找jar包里的文件找不到,请教。
请教问题如下:现本地windows环境程序解析后的url如下:file:/E:/ainbs2_ln/html/WEB-INF/classes/com/syncdatama...
请教问题如下:
现本地windows环境程序解析后的url如下:
file:/E:/ainbs2_ln/html/WEB-INF/classes/com/syncdatamanage/bo/SyncDataLog.bo
传入某方法中进行解析,运行正常。
打包部署到linux上,url被解析成如下格式:
jar:file:/reward/syncdatamanage/ep-syncdatamanage.jar!/com/syncdatamanage/bo/SyncDataLog.bo
运行结果异常,找不到此bo文件。。。现可确认ep-syncdatamanage.jar包存在,并里面包含SyncDataLog.bo,路径也正确。
本人对linux不是很熟,请教各位~请不吝赐教,先谢谢了! 展开
现本地windows环境程序解析后的url如下:
file:/E:/ainbs2_ln/html/WEB-INF/classes/com/syncdatamanage/bo/SyncDataLog.bo
传入某方法中进行解析,运行正常。
打包部署到linux上,url被解析成如下格式:
jar:file:/reward/syncdatamanage/ep-syncdatamanage.jar!/com/syncdatamanage/bo/SyncDataLog.bo
运行结果异常,找不到此bo文件。。。现可确认ep-syncdatamanage.jar包存在,并里面包含SyncDataLog.bo,路径也正确。
本人对linux不是很熟,请教各位~请不吝赐教,先谢谢了! 展开
2个回答
展开全部
方法不对
你看,你第一个里没有jar出现.
file:/E:/ainbs2_ln/html/WEB-INF/classes/com/syncdatamanage/bo/SyncDataLog.bo
这相当于在本在磁盘里找文件,而不是jar里.
那这样,你的第二种方法就不对了.
URL url = getClass().getResource("/org/xxxxxxxx/bbbbb/cccccc");
你是这样的吗?
如果这样,是不对的,这样只是取得当前运行目录下的文件.
如果想得到jar文件里的文件,需要用
JarFile jar = new JarFile(file);
相当于解析压缩包的方式来找到文件.
你看,你第一个里没有jar出现.
file:/E:/ainbs2_ln/html/WEB-INF/classes/com/syncdatamanage/bo/SyncDataLog.bo
这相当于在本在磁盘里找文件,而不是jar里.
那这样,你的第二种方法就不对了.
URL url = getClass().getResource("/org/xxxxxxxx/bbbbb/cccccc");
你是这样的吗?
如果这样,是不对的,这样只是取得当前运行目录下的文件.
如果想得到jar文件里的文件,需要用
JarFile jar = new JarFile(file);
相当于解析压缩包的方式来找到文件.
更多追问追答
追问
您好,感谢您的热心回复,可否提供下qq。。这个问题还需要深入讨论下。。。
追答
白天用了不QQ,白天可以用百度hi,你留下QQ,晚上回去加你。
嗯,上面的回答可能有点问题,
我以前做的是将图片放到jar包里,做为资源文件使用。
我需要做的是列出资源列表,上面说的是如何解析。
----------------------------------------------------------------
如果想得到jar文件里的文件,需要用
JarFile jar = new JarFile(file);
相当于解析压缩包的方式来找到文件.
----------------------------------------------------------------
如果你能明确的知道文件的径,
还是使用。
URL url = getClass().getResource("/org/xxxxxxxx/bbbbb/cccccc");
如果造成了你的误解,表示报歉。
--------------------------------------------------------------------------------------------------
我输出了一下我的URL,如下
eclipse 下运行
/D:/Developer/eclipse-galileo/zazww/ZazwwApp/bin/org/torchgreen/zazww/picture/style/lotusflower.jpg
打成jar后运行
file:/E:/deploy/ZazwwApp.jar!/org/torchgreen/zazww/picture/style/lotusflower.jpg
再次对面回答的错误表示歉意。
不同的是我都是在windows下,回去后,找个linux虚拟机试一下。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询