Java 如何在Windows下使用特定的server.xml启动Tomcat?

Java 如何在Windows下使用特定的server.xml启动Tomcat?,java,tomcat,Java,Tomcat,有时我想用特殊配置启动Tomcat6,而不是使用“server.xml”。因此,我创建了另一个名为server\u test.xml的xml文件。现在我想告诉tomcat使用这个配置。这是怎么做到的 我在网上搜索几乎什么也没找到。只是: “在Tomcat配置中使用不同的server.xml文件:./Tomcat.sh start-f/var/tmp/server-${USER}.xml” 这正是我想要的。也许这适用于linux系统,但不适用于windows。有什么想法吗?看起来没有(记录在案的)

有时我想用特殊配置启动Tomcat6,而不是使用“server.xml”。因此,我创建了另一个名为
server\u test.xml
的xml文件。现在我想告诉tomcat使用这个配置。这是怎么做到的

我在网上搜索几乎什么也没找到。只是: “在Tomcat配置中使用不同的server.xml文件:./Tomcat.sh start-f/var/tmp/server-${USER}.xml”


这正是我想要的。也许这适用于linux系统,但不适用于windows。有什么想法吗?

看起来没有(记录在案的)选项可以传递到startup.sh或catalina.sh来更改

也许您可以将
server.xml
设置为实际要使用的文件的符号链接,并在启动服务器之前更改符号链接


否则,您可以使用不同的
$CATALINA_HOME
值,但这需要复制整个目录结构。

tomcat.sh
自3.x以来就不存在了,老实说,我也不记得它当时有'-f'选项

您有两种选择:

A) 您可以如上所述设置多个tomcat实例,并通过将
CATALINA_BASE
指向所需的实例,在它们之间切换


B) 您可以创建多个名称不同的
server.xml
文件(例如
server-1.xml
server-2.xml
,等等),并编写一个简单的批处理脚本,将指定为命令行参数的批处理脚本复制到实际的
server.xml
,然后启动Tomcat

我知道了。我花了半个晚上,但效果不错:)

起初,我也想到了符号链接,但在Windows下,这不是你想使用的东西。我的第二个想法是修改catalina.bat,但这并不容易。不同的卡塔琳娜之家并不是我真正想要的

那么我做了什么?我提供了
server.xml
作为
catalina.bat
的参数

catalina.bat start -config \conf\server_test.xml
轻松愉快:)

您可以有许多服务器配置文件,并提供启动和停止脚本所需的文件。棘手的是Catalina类提供了错误的使用信息:

usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { start | stop }
但是,如果您交换参数并首先提供“开始”或“停止”,然后提供“-config…”参数,则一切正常

另外,非常好的是,您可以使用此解决方案在IntelliJ IDEA中创建不同的运行配置。我有一个Tomcat连接到本地数据库,还有一个连接到开发数据库。对于每一个,我都有一个不同的
server.xml

我希望这有帮助

问候,, 塞巴斯蒂安