众所周知,windows 和linux下的文件换行符是不一样的,linux为"\n" windows为"\r\n" ,所以Jfinal 打包后经常会出现由于换行符的差异导致启动脚本报错的问题,我通过查阅资料,发现可以通过以下方式解决:
jfinal 打包使用了maven assembly插件 ,可以通过以下配置在实际打包的时候对启动脚本进行换行符的转换
修改package.xml文件
<!-- 项目bin下面的脚本文件copy到 bin目录下 注意文件换行符设置-->
<fileSet>
<directory>${basedir}/bin</directory>
<lineEnding>unix</lineEnding>
<outputDirectory>bin</outputDirectory>
<!-- 脚本文件在 linux下的权限设为755,无需chmod可直接运行 -->
<fileMode>755</fileMode>
<includes>
<include>*.sh</include>
</includes>
</fileSet>
<fileSet>
<directory>${basedir}/bin</directory>
<lineEnding>windows</lineEnding>
<outputDirectory>bin</outputDirectory>
<fileMode>755</fileMode>
<includes>
<include>*.bat</include>
</includes>
</fileSet>同样资源文件的换行符可以这样设置,可以根据需要选择是否配置,通过以上配置再也不用担心换行符的问题了,可以愉快而放心的部署了