コンパイルandroidでJDKを切り替える方法
原生android 4.4.4(KitKat)からJava 7を使い始めましたが、現在チップメーカーのcodebaseではJava 6を使っているので、切り替えが必要で、葛藤しているのでしょうね~
まず、オリジナルandroid KitKatについてお話しします.android developerの公式サイトを参照して、openjdkをインストールすればいいです.
Openjdkは/usr/bin/ディレクトリに直接インストールされます
Java 6をカットする場合は、環境変数を修正することで、私のjava 6はoracle公式サイトで直接ダウンロードし、~/bin/ディレクトリに入れたので、環境変数を設定するスクリプトを単独で独立します.
片付ける.
より優雅に、を参照して、実行スクリプトを書きます.
このリファレンススクリプトでは、PATHディレクトリは、複数回の`setjdk`を実行することによってjdkディレクトリを累加しないことを保証しています(trの役割は、grep-vで元のjdkを削除するために、コロンを改行文字に変換することです).
また、MACシステムでは、10.5以降javaディレクトリは/usr/libexec/java_ホーム取得(詳細は):
では少し時代遅れですが、javaのディレクトリは10.5以前は/system/Library/frameworks/JavaVM.framework/Versionsディレクトリの下に置かれていたため、default値はソフトリンクで指定されています.
まず、オリジナルandroid KitKatについてお話しします.android developerの公式サイトを参照して、openjdkをインストールすればいいです.
$ sudo apt-get update
$ sudo apt-get install openjdk-7-jdk
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
Openjdkは/usr/bin/ディレクトリに直接インストールされます
➜ ~T which javac
/usr/bin/javac
➜ ~T javac -version
javac 1.7.0_55
Java 6をカットする場合は、環境変数を修正することで、私のjava 6はoracle公式サイトで直接ダウンロードし、~/bin/ディレクトリに入れたので、環境変数を設定するスクリプトを単独で独立します.
➜ ~ cat ~/bin/set_java_1.6
export JAVA_HOME=~/bin/jdk1.6.0_45
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME
➜ ~ source ~/bin/set_java_1.6
➜ ~ which javac
/home/caohong/bin/jdk1.6.0_45/bin/javac
➜ ~ javac -version
javac 1.6.0_45
片付ける.
より優雅に、
#!/bin/bash
function setjdk {
#local vmdir=/System/Library/Frameworks/JavaVM.framework/Versions
# jdk , jdk1.6.0_45 jdk/1.6, :setjdk 1.6
local vmdir=~/bin/caohong/bin/jdk/
local ver=${1?Usage: setjdk <version>}
[ -d $vmdir/$ver ] || {
echo Unknown JDK version: $ver
return 1
}
echo -n "Setting this terminal's JDK to $ver ... "
export JAVA_HOME=$vmdir/$ver/Home
PATH=$(echo $PATH | tr ':' '
' | grep -v $vmdir | tr '
' ':')
export PATH=$JAVA_HOME/bin:$PATH
java -version
}
このリファレンススクリプトでは、PATHディレクトリは、複数回の`setjdk`を実行することによってjdkディレクトリを累加しないことを保証しています(trの役割は、grep-vで元のjdkを削除するために、コロンを改行文字に変換することです).
また、MACシステムでは、10.5以降javaディレクトリは/usr/libexec/java_ホーム取得(詳細は
➜ ~ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home
➜ ~ ls -l /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
lrwxr-xr-x 1 root wheel 59 6 30 19:21 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents