微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Tomcat应该在哪里设置JVM参数

看到过很多讲设置JVM的文章写把JVM参数写在Tomcat的catalina.sh(*nix系统中脚本扩展名为sh,Windows系统中脚本扩展名为bat,主文件名相同,以下只以*nix系统为例)文件中,但实际上Tomcat的catalina.sh文件中的注释内容,明确说明不要将变量放在其中,而要放在setenv.sh文件中,以实现用户自定义变量和系统脚本的分离。(“Do not set the variables in this script. Instead put them into a script setenv.sh in CATALINA_BASE/bin to keep your customizations separate.”)

setenv.sh文件认情况是不存在的,如果需要设置用户自定义变量的话,则需要用户自己在CATALINA_BASE/bin或CATALINA_HOME/bin路径下创建,如果这两个变量对应的实际路径不同,并且两个路径都存在setenv.sh文件,则只有CATALINA_BASE/bin下的生效。另外,如果是在Windows系统下将Tomcat注册为服务来启动,则不支持setenv.bat中的设置,用户自定义变量需要保存在Windows的注册表中,可以使用tomcatXw.exe文件来维护(X为版本号),详见catalina.sh脚本中的注释和RUNNING.TXT。

用户自定义变量放在setenv.sh文件中和系统脚本分离,好处在易于维护,比如:在升级Tomcat版本时不需要修改新的catalina.sh来加上原来设置的内容,直接覆盖原路径的catalina.sh(或者是复制setenv.sh到新路径)就可以了;加了什么设置,以后其他人来维护的话,打开setenv.sh文件也一目了然,不用在有很多行代码的catalina.sh文件中查找;避免了修改catalina.sh时将原脚本内容意外改错的情况发生。而坏处则只是需要新建一个脚本文件。何乐而不为呢?

另外,希望大家重视文档的作用,多看成熟产品的文档,多写、多维护自己代码的文档。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐