【问题标题】:TOMCAT: quote < ' > in CATALINA_HOME environment variable causing load error?TOMCAT:在 CATALINA_HOME 环境变量中引用 <'> 导致加载错误?
【发布时间】:2021-03-31 15:35:05
【问题描述】:

我正在尝试使用以下路径中的 service.bat 将 tomcat 安装为服务: C:\Program Files\text with 'quote\Tomcat

但我不断收到以下错误: java.io.FileNotFoundException: C:\Program Files\text with quote\Tomcat\conf\logging.properties; (系统找不到指定的路径)

您可以从错误消息中看到 ' 被忽略,因此无法正确找到/加载某些文件。

如果我切换到没有引号的路径,一切正常。有没有办法解决这个问题,因为我需要在路径中包含一个 '?

【问题讨论】:

    标签: windows tomcat environment-variables procrun


    【解决方案1】:

    您的问题来自 Procrun 解析其command line parameters 的方式。在那些接受值列表的参数(++DependsOn++Environment++JvmOptions++JvmOptions9++StartParams++StopParams)中,单引号 ' 在参数值被拆分为单个值后被去除.无法引用它们(参见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 的可执行文件)并在 “Java” 选项卡中修复它们:

    -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 注册表项。

    另见

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-10
      相关资源
      最近更新 更多