Existem duas variáveis de ambiente - CATALINA_OPTS
e JAVA_OPTS
- que são usadas no script de inicialização e desligamento catalina.sh para Tomcat. Eles são descritos nos comentários desse arquivo como:
[JAVA_OPTS]: (opcional) opções de tempo de execução Java usadas quando o comando "start", "stop" ou "run" é executado
e
[CATALINA_OPTS]: (opcional) opções de tempo de execução Java usadas quando o comando "start" ou "run" é executado
Então, por que existem duas variáveis diferentes? E qual é a diferença?
Em primeiro lugar, qualquer coisa especificada em QUALQUER variável é passada, de forma idêntica, para o comando que inicia o Tomcat - o comando "iniciar" ou "executar" - mas apenas os valores definidos em JAVA_OPTS são passados para o comando "parar". Isso provavelmente não faz nenhuma diferença em como o Tomcat é executado na prática, pois ele afeta apenas o final da execução, não o início.
A segunda diferença é mais sutil. Outros aplicativos também podem usar JAVA_OPTS, mas apenas o Tomcat usará CATALINA_OPTS. Portanto, se você estiver definindo variáveis de ambiente para uso apenas por Tomcat, será melhor usar CATALINA_OPTS, enquanto se estiver definindo variáveis de ambiente para serem usadas por outros aplicativos Java também, como por JBoss, você deve colocar suas configurações em JAVA_OPTS.
Fonte: CATALINA_OPTS v JAVA_OPTS - Qual é a diferença?