From 09040dd8232f8fe588d938e04581ba1648f452f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= Date: Mon, 14 Jul 2014 10:42:11 +0200 Subject: Fix Java detection on some Linux distributions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On some Linux distributions (spotted here on OpenMandriva Lx, but I'm pretty sure some others do the same thing), "which javac" returns /usr/bin/javac, which is a symlink to "../../etc/alternatives/javac", which in turn points at whatever the JDK the user picked as his default. Given "../../etc/alternatives/javac" is a relative, symlink, the next iteration of LSLINE=$(ls -l "$JAVAC") fails (no ../../etc/alternatives/java relative to the build directory), causing tools.jar not to be found. Using readlink -f should work in all cases (while also simplifying the script a bit). Change-Id: I96afcf8e6460861bf8bb849dae05c27c42b91e84 Signed-off-by: Bernhard Rosenkränzer --- core/find-jdk-tools-jar.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'core/find-jdk-tools-jar.sh') diff --git a/core/find-jdk-tools-jar.sh b/core/find-jdk-tools-jar.sh index f150a9a..d1b3ce9 100755 --- a/core/find-jdk-tools-jar.sh +++ b/core/find-jdk-tools-jar.sh @@ -2,13 +2,9 @@ if [ "x$ANDROID_JAVA_HOME" != x ] && [ -e "$ANDROID_JAVA_HOME/lib/tools.jar" ] ; then echo $ANDROID_JAVA_HOME/lib/tools.jar else - JAVAC=$(which javac) + JAVAC=$(readlink -f $(which javac)) if [ -z "$JAVAC" ] ; then exit 1 fi - while [ -L "$JAVAC" ] ; do - LSLINE=$(ls -l "$JAVAC") - JAVAC=$(echo -n "$LSLINE" | sed -e "s/.* -> //") - done echo $JAVAC | sed -e "s:\(.*\)/bin/javac.*:\\1/lib/tools.jar:" fi -- cgit v1.1