[izpack-users] Linux Path Problem for JAR Execution

Loïc lbndev at yahoo.fr
Wed Aug 29 22:00:45 CEST 2007


Hi again,

Thanks for the files. "Unable to access jar file" seems to mean that 
either it doesn't exist or you have a file access rights problem.

If the file is really installed on disk in the right folder (first thing 
to check), try uncommenting the following in your install XML :
               <executable 
targetfile="$INSTALL_PATH/utils/DataSourceInstaller.jar" type="jar" 
failure="ask" stage="postinstall" keep="true"/>
and add a "class" attribute to it, with the name of the class containing 
your Main method, like this :
               <executable 
targetfile="$INSTALL_PATH/utils/DataSourceInstaller.jar" type="jar" 
class="my.package.MyMainClass" failure="ask" stage="postinstall" 
keep="true"/>
If this works, you could be able to get rid of the processpanel. However 
from your processpanelspec I understand that your program expects to get 
the install path as its first argument, but you can't pass it by using 
this first solution (if this is the only one working you'll have to 
adapt your main class to get its jar file location from the classloader 
so that it doesn't need the command line argument).

Else, go on reading after changing the line back to a minimal version :
               <executable 
targetfile="$INSTALL_PATH/utils/DataSourceInstaller.jar" failure="warn" 
stage="never" keep="true"/>

Then, first check you system for misconfiguration :

    * check that the "default" JVM for your system points to something
      compatible with your jar file (for example if you compiled your
      JAR with a javac 5.0, if gcj-supplied java binary is active by
      default, it may fail : check the output of "java -version" as the
      user you used to install your product, and/or the result of
      "alternatives --display java"). Be careful with what's set in your
      PATH and JAVA_HOME.
    * check your JVM security settings

And finally try alternate file execution methods :

    * merge your DataSourceInstaller.jar into izPack by adding a <jar
      src="utils/DataSourceInstaller.jar" /> to your installation XML,
      and then change your processpanelspec's job to something like this
      (replace the FQN for your Main class as above) :

            <job name="DS Install">
                <logfiledir>"$INSTALL_PATH/log"</logfiledir>           
                <executeclass name="my.package.MyMainClass">
                      <arg>$INSTALL_PATH</arg>
               </executeclass>
            </job>

    * write a shell script that runs "java -jar
      $INSTALL_PATH/utils/DataSourceInstaller.jar $INSTALL_PATH" (with
      maximum logging at first : tee all output to a file, and log the
      exit code of the java binary along with your environnement
      variables values - you'll remove those from the script if you
      finally use it when you deliver your app), add it to your utils
      pack, and call it in your processpanelspec. Be sure to have the
      script be properly parsed and with execute permissions - for example :

    <parsable targetfile="$INSTALL_PATH/utils/installDataSource.sh" />
    <executable targetfile="$INSTALL_PATH/utils/installDataSource.sh"
    failure="warn" stage="never" />

    This last solution is, to my opinion, the most complicated but by
    far the most versatile, debbugable and nice-looking way to run a
    job. I do it that way on all my izPacks projects, it allows me to
    have a fine control over process execution, I can use the power of
    the shell for a variety of tasks and I can provide user feedback
    right into the processpanel if needed (a plain old "echo" is nice
    even only for tracking execution when you run lots of time-consuming
    tasks). The only drawback is that you have to write a script
    specific to each OS you ship to (and use the <os> tag in your jobs
    so that the right script gets executed on the user platform).

If you have tried all this and it still fails, please let me know. In 
that case please post the updated XMLs, error messages, scripts and log 
files (the one from your processpanel specs, and you can get more traces 
from izPack by running the installer as "java -DTRACE=true -jar 
yourinstaller.jar 2>&1 | tee izPackTraces.log " ). Include the outputs 
of "java -version", "alternatives --display java" and " env | grep -E 
'(JAVA_HOME|PATH)' ".

Good luck,

Loïc

yj a écrit :
> Hi Loic,
>     I have tried without the line <osfamily="windows"/>  and it still 
> fails. The capitalization seems right to me also. I am enclosing my 
> installSpec.xml file and ProcessPanel xml file and a screenshot of the 
> error i get on Linux.
>
> Thnx for helping me out with this problem. I need to deliver this asap.
>
>
> Regards,
> -- 
> Jankee Yogesh
> Team Leader
> M-ITC LTD
> http://www.m-itc.net
>
>
> Loïc wrote:
>> Hi,
>>
>> Starting with some obvious stuff :
>>
>>     * Have you tried without the line <osfamily="windows"/> ?
>>     * Have you checked that the file name capitalization is right
>>       (Linux is case-sensitive, windows isn't) ?
>>
>> If your problem persists please post the full installation XML file.
>>
>> Good luck,
>>
>> Loïc
>>
>> yj a écrit :
>>> Hi All,
>>>     I have built an installer using IzPack which executes a JAR file 
>>> using the ProcessPanel. The JAR file is successfully executed on Windows 
>>> but cannot be located on Linux. I have tried this of Fedora Core 7 and 
>>> Ubuntu Fesity Fawn but with no success.
>>>
>>>
>>> My ProcessPanelSpec.xml is as follows:
>>>
>>>
>>> <processing>
>>>     <job name="DS Install">
>>>         <logfiledir>"$INSTALL_PATH/log"</logfiledir>
>>>         <osfamily="windows"/>
>>>         <executefile name="java">
>>>             <arg>-jar</arg>
>>>             <arg>"$INSTALL_PATH/utils/DataSourceInstaller.jar"</arg>
>>>             <arg>$INSTALL_PATH</arg>
>>>         </executefile>
>>>     </job>
>>> </processing>
>>>
>>>
>>>
>>> Can anyone help me out with this problem.
>>>
>>> Loads of Thanx
>>>
>>>
>>> Regards,
>>>
>>>   
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> izpack-users mailing list
>> izpack-users at lists.berlios.de
>> https://lists.berlios.de/mailman/listinfo/izpack-users
>>   
>> ------------------------------------------------------------------------
>>
>> No virus found in this incoming message.
>> Checked by AVG Free Edition. 
>> Version: 7.5.484 / Virus Database: 269.12.10/976 - Release Date: 8/27/2007 6:20 PM
>>   
>
>
>
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> izpack-users mailing list
> izpack-users at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/izpack-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.berlios.de/pipermail/izpack-users/attachments/20070829/d3a38a3a/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 28879 bytes
Desc: not available
Url : https://lists.berlios.de/pipermail/izpack-users/attachments/20070829/d3a38a3a/attachment-0001.jpe 


More information about the izpack-users mailing list