[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()方法,解决了这个问题。