java工程打包部署到linux下根据url找jar包里的文件找不到,请教。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java工程打包部署到linux下根据url找jar包里的文件找不到,请教。相关的知识,希望对你有一定的参考价值。
请教问题如下:
现本地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不是很熟,请教各位~请不吝赐教,先谢谢了!
你看,你第一个里没有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虚拟机试一下。
恩!好的 非常感谢,qq已经发给你了
追答我的虚拟机,现在联不了网,
晚上我再搞搞
以上是关于java工程打包部署到linux下根据url找jar包里的文件找不到,请教。的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins自动打包并部署(以java -jar形势运行)