Как передать номер порта tomcat в командной строке?

Можно ли указать tomcat использовать конкретный порт, а не тот, который указан в файле server.xml? Или способ настроить переменную среды как номер порта в server.xml? (который я могу установить в пакетном файле, который запускает tomcat)

По сути, я хочу запустить разные копии (версии) экземпляра tomcat без необходимости вручную изменять server.xml в каждом из них и помнить, какой из них будет запускаться в каком порту. Я хочу указать номер порта, когда я его запускаю, чтобы в нескольких экземплярах не было конфликтов.

Ответ 1

Измените файл server.xml так, чтобы он использовал номера портов, расширенные из свойств вместо жестко закодированных:

<Server port="${port.shutdown}" shutdown="SHUTDOWN">
...
  <Connector port="${port.http}" protocol="HTTP/1.1"/>
...
</Server>

Здесь, как вы можете начать в Linux (если ваш текущий каталог CATALINA_HOME):

JAVA_OPTS="-Dport.shutdown=8005 -Dport.http=8080" bin/startup.sh

В окнах это должно быть что-то вроде следующего:

set "JAVA_OPTS=-Dport.shutdown=8005 -Dport.http=8080"
bin\startup.bat