izpack, как заменить обратную косую черту "\" на косую черту "/" или "\\" в каталоге Windows с пробелом
Я использую установщик izpack для установки приложения, разработанного в Windows. В моей корневой папке приложения будет место. В файле конфигурации.properties есть свойство с расположением папки.
PluginFolder=${plugin.dir}
Например, мой пример расположения каталога Windows - "C:\ Моя папка приложения \ Папка плагинов"
Который требуется заменить на фактический путь к папке после установки следующим образом, потому что 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="javaprop" в установщике izpack добавляет "\" с пробелом в пути к папке. Это мне не требуется, так как мое приложение не может его прочитать.
PluginFolder=C:\\My\ Application\ Folder\\Plugins\ Folder
Использование type = "java" работает нормально, если в пути к папке нет места и замените все "\" на "\". Но с пространством в пути к папке, что весьма вероятно в Windows и также требуется для моего приложения, оно не работает.
На самом деле я не хочу, чтобы "SPACE" в папке-пути был заменен на "\SPACE".
Ребята помогите пожалуйста решить эту проблему в установщике izpack.
1 ответ
Вы можете обойти это поведение, например, используя динамические переменные с фильтрацией:
<dynamicvariables>
<variable name="plugin.dir.parsed" value="${plugin.dir}">
<filters>
<regex regexp="[/\\]+" replace="/" global="true" />
</filters>
</variable>
</dynamicvariables>