Recently I tried to build a project under Suse 9.3 with jdk1.3.1. Normally I use 1.4.2, and all went well. However when I set my java to jdk1.3.1 and start up the compile, I get the following error:
[javac] Compiling 1634 source files to /home/jan/workspace/release/build.bak/xxxx/build/classes
[javac] error: compiler message file broken: key=compiler.err.sun.io.MalformedInputException arguments=null, null, null, null, null, null, null
I found out that it was while the original charset of the files was different as the locale of my current shell.
The command locale shows:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
..
When I made an explicit `export LANG=en_US.ISO-8859-1` I could run my compile again. Strangely, jdk1.4 does not suffer from this problem.
To change my environment to jdk1.3.1 and another ant, I use a source script change-java-ant-1_3_1.source:
export JAVA_HOME=/usr/local/jdk1.3.1_16
export ANT_HOME=/usr/local/apache-ant-1.6.3
export PATH=$JAVA_HOME/bin:$PATH
export PATH=$ANT_HOME/bin:$PATH
alias ant="ant --noconfig"
export LANG=en_US.ISO-8859-1
echo "run with source, and not as shell; else it gets forked"
echo "alias of ant set to ant --noconfig"
echo "LANG set to en_US.ISO-8859-1 so that latakia compile works"
echo
echo "test with java -version"
echo " ant -version"
echo " locale"
The --noconfig is needed so that the /etc/ant.conf will not be read. This ant.conf file has already been set to my suse rpm-based ant.
To load the source script I must use source. When I would use a shell to execute it, the new settings would only be valid inside the new shell.
[javac] Compiling 1634 source files to /home/jan/workspace/release/build.bak/xxxx/build/classes
[javac] error: compiler message file broken: key=compiler.err.sun.io.MalformedInputException arguments=null, null, null, null, null, null, null
I found out that it was while the original charset of the files was different as the locale of my current shell.
The command locale shows:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
..
When I made an explicit `export LANG=en_US.ISO-8859-1` I could run my compile again. Strangely, jdk1.4 does not suffer from this problem.
To change my environment to jdk1.3.1 and another ant, I use a source script change-java-ant-1_3_1.source:
export JAVA_HOME=/usr/local/jdk1.3.1_16
export ANT_HOME=/usr/local/apache-ant-1.6.3
export PATH=$JAVA_HOME/bin:$PATH
export PATH=$ANT_HOME/bin:$PATH
alias ant="ant --noconfig"
export LANG=en_US.ISO-8859-1
echo "run with source, and not as shell; else it gets forked"
echo "alias of ant set to ant --noconfig"
echo "LANG set to en_US.ISO-8859-1 so that latakia compile works"
echo
echo "test with java -version"
echo " ant -version"
echo " locale"
The --noconfig is needed so that the /etc/ant.conf will not be read. This ant.conf file has already been set to my suse rpm-based ant.
To load the source script I must use source. When I would use a shell to execute it, the new settings would only be valid inside the new shell.
Comments