2015-07-16 2 views
4

Я пытаюсь создать установщик для моего одного из java-приложений.IzPack исполняемый файл не работает для скриптов linux

В соответствии с документацией here исполняемый файл используется для выполнения суммирования во время процесса установки или может использоваться для установки исполняемого флага в unix-подобных системах.

Но когда я использую то же самое внутри одного из своих пакетов, он ничего не делает. Таким образом, моя работа становится неудачной с меньшим исключением.

java.io.IOException: Не удается запустить программу /home/user/1.0/installations/test.sh: ошибка = 13, Отказано

Ниже приводится определение пакета внутри install.xml

<pack name="Install Database Server" required="no" preselected="no" 
installGroups="New Application"> 
    <description>New server installation of the selected database as 
     required by the application. 
    </description> 
    <fileset dir="installations" targetdir="$INSTALL_PATH/$APP_VERSION/installations"> 
     <include name="**" /> 
    </fileset> 
    <executable target="$INSTALL_PATH/$APP_VERSION/installations/test.sh" 
     stage="never" keep="true" os="unix"> 
    </executable> 
</pack> 

И ниже находится XML-файл спецификации рабочего процесса.

<job name="TestInstaller"> 
    <executefile name="$INSTALL_PATH/$APP_VERSION/installations/test.sh"> 
    </executefile> 
</job> 

Так может кто-нибудь, пожалуйста, помогите мне в этом.

Заранее спасибо.

ответ

1

os является вложенным элементом не является атрибутом. Пожалуйста, измените install.xml следующим образом:

<executable target="$INSTALL_PATH/$APP_VERSION/installations/test.sh" 
    stage="never" keep="true"> 
    <os family="unix" /> 
</executable> 

Чтобы предотвратить это исполняемый также вызывается в операционных системах, отличных от UNIX, вы должны также добавить этот элемент к процессу спецификации XML:

<job name="TestInstaller"> 
    <executefile name="$INSTALL_PATH/$APP_VERSION/installations/test.sh"> 
     <os family="unix" /> 
    </executefile> 
</job> 
0

If вы хотите избежать использования ProcessPanel, тогда вы можете установить его прямо следующим образом:

<pack name="Pack" id="pack" required="yes"> 
    <description>Pack</description> 
    <executable targetfile="${INSTALL_PATH}/bin/run.sh" os="unix" stage="never" failure="warn" keep="true" /> 
</pack>