TOMCAT: 在 CATALINA_HOME 环境变量中引用 < ' > 导致加载错误?
TOMCAT: quote < ' > in CATALINA_HOME environment variable causing load error?
我正在尝试在以下路径中使用 service.bat 将 tomcat 安装为服务:
C:\Program Files\text with' quote\Tomcat
但我不断收到以下错误:
java.io.FileNotFoundException: C:\Program Files\text with quote\Tomcat\conf\logging.properties; (系统找不到指定的路径)
正如您从错误消息中看到的那样,' 被忽略,因此某些文件无法正确 found/loaded。
如果我切换到不带引号的路径,一切正常。有没有办法解决这个问题,因为我需要在路径中包含一个 '?
您的问题来自 Procrun 解析其 command line parameters. In those parameters which accept lists of values (++DependsOn
, ++Environment
, ++JvmOptions
, ++JvmOptions9
, ++StartParams
and ++StopParams
) single quotes '
are stripped after the parameter value has been split into single values. There is no way to quote them (cf. source code) 的方式。
因此 service.bat
中使用的 ++JvmOptions
参数解释如下(每行一个值):
-Dcatalina.home=C:\Scarlett oHara;-Dcatalina.base=C:\Scarlett oHara
-Dignore.endorsed.dirs=C:\Scarlett oHara\endorsed;-Djava.io.tmpdir=C:\Scarlett oHara\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Scarlett oHara\conf\logging.properties;
由于 '
无意引用,您可能会注意到某些条目由 ;
加入。
修复此问题的唯一方法是启动 Prunmgr(可执行文件重命名为 tomcat*w.exe
)并在 "[=51] 中修复它们=]"" 选项卡:
-Dcatalina.home=C:\Scarlett o'Hara
-Dcatalina.base=C:\Scarlett o'Hara
-Dignore.endorsed.dirs=C:\Scarlett o'Hara\endorsed
-Djava.io.tmpdir=C:\Scarlett o'Hara\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Scarlett o'Hara\conf\logging.properties;
或直接处理 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0
注册表项。
另见:
- 由于引用引起的类似问题:Adding multiple values to an environment in registry and retrieving in Java application
我正在尝试在以下路径中使用 service.bat 将 tomcat 安装为服务: C:\Program Files\text with' quote\Tomcat
但我不断收到以下错误: java.io.FileNotFoundException: C:\Program Files\text with quote\Tomcat\conf\logging.properties; (系统找不到指定的路径)
正如您从错误消息中看到的那样,' 被忽略,因此某些文件无法正确 found/loaded。
如果我切换到不带引号的路径,一切正常。有没有办法解决这个问题,因为我需要在路径中包含一个 '?
您的问题来自 Procrun 解析其 command line parameters. In those parameters which accept lists of values (++DependsOn
, ++Environment
, ++JvmOptions
, ++JvmOptions9
, ++StartParams
and ++StopParams
) single quotes '
are stripped after the parameter value has been split into single values. There is no way to quote them (cf. source code) 的方式。
因此 service.bat
中使用的 ++JvmOptions
参数解释如下(每行一个值):
-Dcatalina.home=C:\Scarlett oHara;-Dcatalina.base=C:\Scarlett oHara
-Dignore.endorsed.dirs=C:\Scarlett oHara\endorsed;-Djava.io.tmpdir=C:\Scarlett oHara\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Scarlett oHara\conf\logging.properties;
由于 '
无意引用,您可能会注意到某些条目由 ;
加入。
修复此问题的唯一方法是启动 Prunmgr(可执行文件重命名为 tomcat*w.exe
)并在 "[=51] 中修复它们=]"" 选项卡:
-Dcatalina.home=C:\Scarlett o'Hara
-Dcatalina.base=C:\Scarlett o'Hara
-Dignore.endorsed.dirs=C:\Scarlett o'Hara\endorsed
-Djava.io.tmpdir=C:\Scarlett o'Hara\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Scarlett o'Hara\conf\logging.properties;
或直接处理 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0
注册表项。
另见:
- 由于引用引起的类似问题:Adding multiple values to an environment in registry and retrieving in Java application