Tomcat CATALINA_BASE指向C盘异常,IntelliJ运行Servlet项目报错求助
IntelliJ IDEA中Tomcat CATALINA_BASE路径错误导致启动失败的解决办法
问题现象
Tomcat实际安装在E盘,但运行时CATALINA_BASE指向C盘不存在的路径C:\Program Files\Apache Software Foundation\Tomcat 8.0,无法加载server.xml,抛出FileNotFoundException,服务器启动失败。已尝试设置系统环境变量CATALINA_BASE但无效,需将其改为与CATALINA_HOME一致。
运行日志
"E:\Software Development\Java Development\Servelts & JSP\apache-tomcat-9.0.85-windows-x64\apache-tomcat-9.0.85\bin\catalina.bat" run [2024-04-16 11:30:54,189] Artifact customer-support:war exploded: Waiting for server connection to start artifact deployment... Using CATALINA_BASE: "C:\Program Files\Apache Software Foundation\Tomcat 8.0" Using CATALINA_HOME: "E:\Software Development\Java Development\Servelts & JSP\apache-tomcat-9.0.85-windows-x64\apache-tomcat-9.0.85" Using CATALINA_TMPDIR: "E:\Software Development\Java Development\Servelts & JSP\apache-tomcat-9.0.85-windows-x64\apache-tomcat-9.0.85\temp" Using JRE_HOME: "C:\Program Files\Java\jdk-21" Using CLASSPATH: "E:\Software Development\Java Development\Servelts & JSP\apache-tomcat-9.0.85-windows-x64\apache-tomcat-9.0.85\bin\bootstrap.jar;E:\Software Development\Java Development\Servelts & JSP\apache-tomcat-9.0.85-windows-x64\apache-tomcat-9.0.85\bin\tomcat-juli.jar" Using CATALINA_OPTS: "" NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED Apr 16, 2024 11:30:55 AM org.apache.catalina.startup.Catalina parseServerXml WARNING: Unable to load server configuration from [C:\Program Files\Apache Software Foundation\Tomcat 8.0\conf\server.xml] java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\conf\server.xml (The system cannot find the path specified) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:213) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:152) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:106) at java.base/sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:84) at java.base/sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:180) at org.apache.catalina.startup.CatalinaBaseConfigurationSource.getResource(CatalinaBaseConfigurationSource.java:118) at org.apache.tomcat.util.file.ConfigurationSource.getConfResource(ConfigurationSource.java:150) at org.apache.tomcat.util.file.ConfigurationSource.getServerXml(ConfigurationSource.java:127) at org.apache.catalina.startup.CatalinaBaseConfigurationSource.getServerXml(CatalinaBaseConfigurationSource.java:52) at org.apache.catalina.startup.Catalina.parseServerXml(Catalina.java:606) at org.apache.catalina.startup.Catalina.load(Catalina.java:709) at org.apache.catalina.startup.Catalina.load(Catalina.java:746) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:307) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:477) Apr 16, 2024 11:30:55 AM org.apache.catalina.startup.Catalina start SEVERE: Cannot start server, server instance is not configured Disconnected from server
解决步骤
修改IDEA内的Tomcat配置:
- 点击右上角运行按钮旁的下拉菜单,选择
Edit Configurations...打开运行配置窗口 - 在左侧列表找到你的Tomcat Server配置项,点击进入详情页
- 切换到
Server标签,点击Tomcat Server右侧的Configure...按钮 - 在弹出的Tomcat配置窗口中,确认
Tomcat Home是E盘的实际路径,然后手动将CATALINA_BASE设置为与CATALINA_HOME完全相同的路径 - 保存所有配置后,重新启动Tomcat
- 点击右上角运行按钮旁的下拉菜单,选择
清除IDEA缓存:
- 点击顶部菜单栏
File->Invalidate Caches... - 选择
Invalidate and Restart,等待IDEA重启后再尝试启动项目
- 点击顶部菜单栏
清理旧Tomcat实例残留:
手动删除IDEA生成的Tomcat实例目录(通常路径为C:\Users\<你的用户名>\.IntelliJIdea<版本号>\system\tomcat\<项目相关名称>),之后重新配置Tomcat
内容的提问来源于stack exchange,提问作者Kelash
相关产品推荐
相关产品推荐

