izpack 如何将反斜杠""替换为斜杠"/"或 Windows 目录位置中的"\"空格



我正在使用izpack安装程序来安装我在Windows中开发的应用程序。我的应用程序根文件夹将有空间。配置 .properties 文件中有一个具有文件夹位置的属性。

PluginFolder=${plugin.dir}  

例如,我的示例窗口目录位置是"C:\My Application Folder\Plugins Folder"

安装后需要替换为实际的文件夹路径,如下所示,因为java无法读取文件夹中只有"\"的文件的属性。

PluginFolder=C:\My Application Folder\Plugins Folder
or 
PluginFolder=C:/My Application Folder/Plugins Folder

以上任何一项都可以与我的应用程序一起使用。

在 izpack 安装程序中,文件夹位置读取使用

<panel ...>
...
   <field type="dir" align="left" variable="plugin.dir">
      <spec txt="Plugin Directory :" size="25" set="${plugin.default.dir}" />
   </field>
....
</panel>

配置文件中的属性是使用

<parsable targetfile="$INSTALL_PATH/config/myapp.properties" type="javaprop">
   <os family="windows" />
</parsable>

但是在 izpack 安装程序中使用 type="javaprop" 是在文件夹路径中附加带有空格的 "\"。我不需要,因为我的应用程序无法读取它。

PluginFolder=C:\My Application Folder\Plugins Folder

如果文件夹路径中没有空格,则使用 type="java" 可以正常工作,并将所有 "\" 替换为 "\"。但是文件夹路径中有空格,这很可能在 Windows 中,并且我的应用程序也需要它不起作用。

实际上,我不希望文件夹路径中的"空格"被"\SPACE"替换。

伙计们请帮助我在izpack安装程序中解决此问题。

您可以解决此行为,例如,通过将动态变量与过滤一起使用:

<dynamicvariables>
  <variable name="plugin.dir.parsed" value="${plugin.dir}">
    <filters>
      <regex regexp="[/\]+" replace="/" global="true" />
    </filters>
  </variable>
</dynamicvariables>

相关内容

  • 没有找到相关文章