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