[b]关于jstl c:if标签多条件的正确写法[/b]
[b]关于eclipse生成可执行jar包后资料路径的问题[/b]
在eclipse工程开发环境下运行正常,用eclipse生成可执行jar文件之后就抱找不到资源的错误。后来调试了一下,原因在于getClass().getClassLoader().getResource()这个方法返回的URL格式不同造成的。
比如在工程根目录下有个文件a.properties
在jar环境下生成的URL是 rsrc:a.properties
而在开发环境下生成的URL是文件的绝对路径 file:/D:/projectpath/a.properties
在寻找配置文件的代码是用
文件的绝对路径因此没有问题,而在jar环境下这个返回的就是文件名a.properties,从而报找不到资源的错误。。修正这个问题的方法很简单,直接用URL.openStreams()方法,解决了这个问题。
<c:if test="${(history.type == 1) and history.active}"> ${history.sales}</c:if>[b]关于eclipse生成可执行jar包后资料路径的问题[/b]
在eclipse工程开发环境下运行正常,用eclipse生成可执行jar文件之后就抱找不到资源的错误。后来调试了一下,原因在于getClass().getClassLoader().getResource()这个方法返回的URL格式不同造成的。
比如在工程根目录下有个文件a.properties
在jar环境下生成的URL是 rsrc:a.properties
而在开发环境下生成的URL是文件的绝对路径 file:/D:/projectpath/a.properties
在寻找配置文件的代码是用
FileInputStream inputStream = new FileInputStream(url.getPath()) 这个方法。在开发环境中这个返回的刚好是文件的绝对路径因此没有问题,而在jar环境下这个返回的就是文件名a.properties,从而报找不到资源的错误。。修正这个问题的方法很简单,直接用URL.openStreams()方法,解决了这个问题。
文章详细介绍了在使用Eclipse开发环境下,如何解决生成可执行jar包后,由于URL格式不同导致找不到资源的问题。通过将代码中的URL.openStream()方法替换为URL.openStreams()方法,成功解决了资源查找失败的问题。
745

被折叠的 条评论
为什么被折叠?



