본문 바로가기

심오한 세상/Java; Java FX;

리눅스에 JDK 설치하기


http://java.sun.com/
에서 일단 리눅스용 bin파일을 다운 받는다.
rpm버전으로 되어 있는 버전도 있지만, 그것은 rpm을 구동시킬 수 있는 환경이 되어야하므로
bin을 실행하여 압축만 푸는 버전으로 하는 것이 좋을 것으로 본다.

압축을 풀고, 원하는 위치에 파일을 이동시킨다.
하지만, 이것으로는 java -version을 하면 이상한 에러만 발생된다.

# java -version
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object


위와 같은 에러만 나오고 실행은 되지 않는다.

이것을 해결하기 위해 구글을 통해서 많이 사이트를 찾았다.
하지만, 해결책이 있는 사이트는 하나뿐이었고, 한국어로 되어 있는 사이트는 아무곳에도 없었다.

대부분의 사이트에서는 "JAVA_HOME을 해줘야한다.", "PATH를 지정해줘야한다.", "CALSSPATH를 지정해줘야 한다." 이렇게 말하고 있었다.

하지만, 아무것도 이 에러를 잡아주지를 못했다.
위 내용도 맞을 수 있다. 다만 Object class 파일이 jre/lib에 있다는 것을 확신하고, 찾을 수만 있다면....
하지만, lib에는 jar 파일이 보이지 않았고, pack이라는 파일들이 보였다.
즉, rt.pack 파일은 보였으나 rt.jar 파일이 보이지 않았다.

따라서, pack 파일을 jar로 변환하는 스크립트를 공개하려 한다.
이 내용은 sun사가 운영하는 forum에서 가져온 내용이며, 굳이 스크립트에 대한 저작권을 바란다면, 그쪽 사이트에 있다고 하겠다.
JAVA_HOME을 정확하게 지정하고 실행시켜야 한다.

#!/bin/sh
JH=${JAVA_HOME:-"/usr/local/jdk1.6.0_13/jre"}
UNPACK_EXE=$JH/bin/unpack200
if [ -f $UNPACK_EXE ]; then
chmod +x $UNPACK_EXE

PACKED_JARS="lib/rt.jar lib/jsse.jar lib/charsets.jar lib/ext/localedata.jar lib/plugin.jar lib/javaws.jar lib/deploy.jar"
for i in $PACKED_JARS; do
srcFile=${JH}`dirname $i`/`basename $i .jar`.pack
dstFile=${JH}/$i
if [ ! -f $srcFile ]; then
printf "Error: Unable to find %s. Please, check out your installation.\n" $srcFile
exit 1
fi
$UNPACK_EXE $srcFile $dstFile
if [ ! -f $dstFile ]; then
printf "Error: unpack could not create %s. Please refer to the Troubleshooting\n" $dstFile
printf "Section of the Installation Instructions on the download page.\n"
exit 1
fi

rm -f $srcFile
done

else
printf "Error: unpack command could not be found. Please refer to the \n"
printf "TroubleShooting Section of the Installation Instructions on \n"
printf "the download page.\n"
printf "Please do not attempt to install this archive file.\n"
exit 2
fi


(출처) http://forums.sun.com/thread.jspa?threadID=598858