Based on 01es answer , you can select the path for the application data using UserInputPanel , and then write this path to the configuration file inside the installation directory to read your application.
An example config.xmlcontaining the variables you want to replace:
<?xml version="1.0" encoding="UTF-8"?>
<Entries>
<Entry>
<Key>appDataDir</Key>
<Value>$appDataDir</Value>
</Entry>
</Entries>
userInputSpec.xml:
<userInput>
<panel id="panel1">
<field type="dir" variable="appDataDir">
<spec size="20" set="$USER_HOME\AppData\Roaming\$APP_NAME" mustExist="false" create ="true"/>
<os family="windows"/>
</field>
</panel>
</userInput>
installer.xml:
<?xml version="1.0" encoding="UTF-8"?><installation version="1.0">
<info>
<appname>Your app</appname>
<appversion>0.0.1</appversion>
<run-privileged condition="izpack.windowsinstall" />
</info>
<locale>
<langpack iso3="eng" />
</locale>
<resources>
<res id="userInputSpec.xml" src="userInputSpec.xml" parse="yes" type="xml" />
</resources>
<panels>
<panel classname="UserInputPanel" id="panel1" />
<panel classname="InstallPanel" />
<panel classname="FinishPanel" />
</panels>
<packs>
<pack name="Core" id="core.package" required="yes">
<description>The base files that need to be part of the app</description>
<fileset dir="YourAppDir" targetdir="$INSTALL_PATH/YourAppDir">
<include name="**" />
</fileset>
<parsable targetfile="$INSTALL_PATH/YourAppDir/config.xml" />
</pack>
</packs>
</installation>