VSCode运行Tomcat服务器遇配置错误及多类异常求助
VSCode中Tomcat启动配置错误排查方案
报错日志(中文翻译版)
配置错误 java.io.FileNotFoundException: 'c:\Users\user\.rsp\redhat-community-server-connector\runtimes\installations\apache-tomcat-8.5.87\conf\logging.properties' (文件名、目录名或卷标语法不正确) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:219) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:158) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112) at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:483) at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:321) at java.logging/java.util.logging.LogManager.readPrimordialConfiguration(LogManager.java:446) at java.logging/java.util.logging.LogManager$2.run(LogManager.java:395) at java.base/java.security.AccessController.doPrivileged(AccessController.java:318) at java.logging/java.util.logging.LogManager.ensureLogManagerInitialized(LogManager.java:383) at java.logging/java.util.logging.LogManager.getLogManager(LogManager.java:431) at java.logging/java.util.logging.Logger.demandLogger(Logger.java:650) at java.logging/java.util.logging.Logger.getLogger(Logger.java:720) at java.logging/java.util.logging.Logger.getLogger(Logger.java:703) at org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:61) at org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:181) at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:130) at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:153) at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:208) at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:52) 2023年3月5日 下午6:03:41 org.apache.catalina.startup.Bootstrap initClassLoaders 严重: 类加载器创建抛出异常 java.io.IOException: 文件名、目录名或卷标语法不正确 at java.base/java.io.WinNTFileSystem.canonicalize0(Native Method) at java.base/java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:465) at java.base/java.io.File.getCanonicalPath(File.java:626) at java.base/java.io.File.getCanonicalFile(File.java:651) at org.apache.catalina.startup.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:179) at org.apache.catalina.startup.Bootstrap.createClassLoader(Bootstrap.java:198) at org.apache.catalina.startup.Bootstrap.initClassLoaders(Bootstrap.java:146) at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:254) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:447)
问题排查与解决
1. 文件路径存在但触发FileNotFoundException
- 检查路径权限:右键目标文件→属性→安全,确保当前用户拥有文件读取权限,避免系统权限拦截。
- 修复路径格式:Windows环境下Tomcat配置路径需使用正斜杠
/或双反斜杠\\,手动核对VSCode插件中Tomcat安装路径的配置,避免自动生成路径出现转义错误。 - 验证文件完整性:重新下载Tomcat压缩包并解压,排除解压过程中文件损坏、缺失的情况。
2. 类加载器创建异常
- 该异常多由路径解析失败引发,解决第一个问题后通常会自动修复。
- 核对版本兼容性:Tomcat 8.5仅支持JDK 8至JDK 11,若使用更高版本JDK,切换至对应兼容版本。
- 清理缓存文件:删除Tomcat目录下的
work、temp文件夹,以及VSCode工作区缓存,重启后重新配置Tomcat。
3. 日志乱码问题
- 添加JVM启动参数:在VSCode的Tomcat启动配置中,追加
-Dfile.encoding=UTF-8和-Dsun.jnu.encoding=UTF-8,强制JVM使用UTF-8编码。 - 完善日志配置:修改
conf/logging.properties,确保所有日志处理器编码设置为UTF-8:java.util.logging.ConsoleHandler.encoding = UTF-8 java.util.logging.FileHandler.encoding = UTF-8 - 调整终端编码:打开VSCode设置,搜索
terminal.integrated.encoding.windows,将值设为UTF-8,重启终端后再启动Tomcat。
内容的提问来源于stack exchange,提问作者정상환
相关产品推荐
相关产品推荐

