InstallAnywhere…well, almost.

January 10th, 2007

I ran into a super crazy linux environment problem that inadvertently caused a runtime exception with InstallAnywhere. The solution left me shaking my head because I never would have guessed it. So, here’s the solution in case someone runs into the same issue. Thanks to Adam Funk for taking the time to post the original solution. I was installing a software package on Ubuntu 6.10 — though the problem is with the installer application InstallAnywhere.

The Problem - InstallAnywhere pukes with a nasty “Malformed encoding” stack trace.

dthomas@dthomas-laptop$ ./Application_4_5_1_Linux_x86_2_2.bin
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
Launching installer...

An internal LaunchAnywhere application error has occured and this application cannot proceed. (LAX)
Stack Trace:
java.lang.IllegalArgumentException: Malformed uxxxx encoding.
at java.util.Properties.loadConvert(Unknown Source)
at java.util.Properties.load(Unknown Source)
at com.zerog.common.java.util.PropertiesUtil.loadProperties(DashoA8113)
at com.zerog.lax.LAX.(DashoA8113)
at com.zerog.lax.LAX.main(DashoA8113)

The Solution - Remove “\u” from your PS1 environment variables then re-install

For some reason, InstallAnywhere is loading and interpreting environment variables from the shell and thinks \u is the start of an encoding… Maybe this is an episode of “When regex goes wild, Part 1″. I have the following in my .bashrc:

export PS1="[\w]\n\u@\h$ "

Either remove the “\u”, comment out PS1 from your .bashrc, or run “unset PS1″ before installing your application. Keep in mind if you unset your PS1, the shell prompt will be invisible… you can still execute commands, you just won’t have a nice blinking cursor.

Leave a Reply