izpack如何替换反斜杠" \"用斜线" /"或与" \\"在具有空格

时间:2016-01-18 08:03:25

标签: izpack izpanel

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

PluginFolder=${plugin.dir}  

例如我的示例windows-directory位置是" 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>

但是使用type =&#34; javaprop&#34;在izpack安装程序中附加&#34; \&#34;文件夹路径中存在SPACE。我没有要求,因为我的申请无法阅读。

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

使用type =&#34; java&#34;如果文件夹路径中没有空格并替换所有&#34; \&#34;用&#34; \&#34;。但是在文件夹路径中有空间,这很可能在Windows中,也是我的应用程序所必需的,它无法正常工作。

其实我不想要&#34; SPACE&#34;在文件夹路径中替换为&#34; \ SPACE&#34;。

伙计们请帮我解决izpack安装程序中的这个问题。

1 个答案:

答案 0 :(得分:3)

您可以解决此问题,例如通过使用带过滤的动态变量:

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