github.com/luchsh/agentlib.go@v0.0.0-20221115155834-ffd0caec4d72/env.sh (about) 1 #!/usr/bin/env bash 2 # 3 # source env.sh before running tests or compilation 4 5 OS=`uname -s | tr '[[:upper:]]' '[[:lower:]]'` 6 7 function detect_java_home { 8 # Use a Java snippet to detect 9 cat > /tmp/EchoJavaHome.java <<EOF 10 public class EchoJavaHome { 11 public static void main(String[] args) { 12 System.out.println(System.getProperty("java.home")); 13 } 14 } 15 EOF 16 javac /tmp/EchoJavaHome.java 17 export JAVA_HOME="$(java -cp /tmp EchoJavaHome)" 18 } 19 20 function setup { 21 detect_java_home 22 23 if [[ "x${OS}" = "xdarwin" ]]; then 24 export DYLD_LIBRARY_PATH=${JAVA_HOME}/lib/server:${DYLD_LIBRARY_PATH} 25 elif [[ "x${OS}" = "xlinux" ]]; then 26 # detect JAVA_HOME 27 if [[ "x${JAVA_HOME}" = "x" ]]; then 28 which java > /dev/null 2>&1 || { 29 echo "cannot find command java, aborting" 30 return 1 31 } 32 fi 33 export LD_LIBRARY_PATH=${JAVA_HOME}/lib/server:${DYLD_LIBRARY_PATH} 34 fi 35 36 if [[ "x${JAVA_HOME}" = "x" ]] || [[ ! -d "${JAVA_HOME}" ]]; then 37 echo "Canot find a valid JAVA_HOME, aborting..." 38 return 128 39 fi 40 41 if [[ "x$(echo ${PATH} | sed 's/:/\n/g' | grep ${JAVA_HOME}/bin)" = "x" ]]; then 42 export PATH=${JAVA_HOME}/bin:${PATH} 43 if [[ -d "${JAVA_HOME}/jre" ]]; then 44 export PATH=${JAVA_HOME}/jre/bin:${PATH} 45 fi 46 fi 47 48 if [[ -d "${JAVA_HOME}/jre" ]]; then 49 export CGO_LDFLAGS="-L${JAVA_HOME}/lib/amd64/server -ljvm" 50 else 51 export CGO_LDFLAGS="-L${JAVA_HOME}/lib/server -ljvm" 52 fi 53 54 export CGO_CFLAGS="-I${JAVA_HOME}/include -I${JAVA_HOME}/include/${OS}" 55 return 0 56 } 57 58 setup