Frank Winkler
Frank Winkler

Reputation: 419

Install4j: Unix Installer causes bin/unpack200: not found

we use a setup, created with install4j (we still use 5.0.11). On a new local unix machine (Linux version 3.8.13-44.1.4.el6uek.x86_64) this setup failed, the log shows:

Unpacking JRE ...
micsetup.sh: 210: micsetup.sh: bin/unpack200: not found
Preparing JRE ...
Error unpacking jar files. The architecture or bitness (32/64) of the bundled JVM might not match your machine.

Searching for this error I found this:

the program tries to run the file /bin/unpack200 which does not exist. However, the file /usr/bin/unpack200 does exist. This is due to the fact that this file is in different places depending on the architecture of the machine used - if it is 32bits, it is in one place, if it is 64bits, it is in the other. I am having this problem because the file was made to run on a 32bit architecture but I am using a 64bits machine. Therefore to fix this problem one must install 32bits libraries.

After running

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

our setup works.

My question: is there a way to configure the "Unix installer" in install4j to build the setup, that it works on 64 bit Linux systems like the mentioned without installing additional libraries on this system? I think not all of our customers would allow this.

Thanks in advance!

Frank

Upvotes: 1

Views: 4225

Answers (1)

Ingo Kegel
Ingo Kegel

Reputation: 48005

No, there is no such functionality in install4j. Bundling JREs on Linux is generally problematic.

One strategy would be to offer installers with 32-bit JRE and installers with 64-bit JREs.

Upvotes: 1

Related Questions