diff options
Diffstat (limited to 'share/java-common.sh')
-rw-r--r-- | share/java-common.sh | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/share/java-common.sh b/share/java-common.sh new file mode 100644 index 0000000..c0db858 --- /dev/null +++ b/share/java-common.sh @@ -0,0 +1,36 @@ +function jvm_scan_file() { + file="$1" + + grep -v '#' "$file" | while read jvm; do + if [ -n "$jvm" -a -x "$jvm/bin/java" ]; then + echo -n $jvm + return + fi + done +} + +function jvm_find() { + local jvm + + if [ -n "$JAVA_HOME" ]; then + jvm="$JAVA_HOME" + fi + + for file in \ + "$HOME/.jvm.d/$1" \ + "$HOME/.jvm" \ + "/etc/jvm.d/$1" \ + "/etc/jvm"; do \ + if [ -z "$jvm" ]; then + if [ -r "$file" ]; then + jvm="$(jvm_scan_file "$file")" + fi + fi + done + + echo -n "$jvm" +} + +function jvm_config() { + echo JAVA_HOME="$(jvm_find "$1")" +} |