Lines 424-434
manualpageVM () {
Link Here
|
424 |
# Look for an appropriate JAVA_HOME |
424 |
# Look for an appropriate JAVA_HOME |
425 |
_JAVAVM_SAVE_PROG=${_JAVAVM_PROG} |
425 |
_JAVAVM_SAVE_PROG=${_JAVAVM_PROG} |
426 |
_JAVAVM_PROG="../man/man1/${1}.1" |
426 |
_JAVAVM_PROG="../man/man1/${1}.1" |
427 |
setJavaHome |
427 |
ensureJavaHome |
428 |
if [ $? != 0 ]; then |
|
|
429 |
echo "${_JAVAVM_SAVE_PROG}: error: no suitable JavaVMs found" 1>&2 |
430 |
exit 1 |
431 |
fi |
432 |
|
428 |
|
433 |
# Run man(1) |
429 |
# Run man(1) |
434 |
MANPATH="${JAVA_HOME}/man:${MANPATH}" |
430 |
MANPATH="${JAVA_HOME}/man:${MANPATH}" |
Lines 442-447
manualpageVM () {
Link Here
|
442 |
fi |
438 |
fi |
443 |
} |
439 |
} |
444 |
|
440 |
|
|
|
441 |
# |
442 |
# Handle the java_home command |
443 |
# |
444 |
# This works similarly to the command of the same name on macOS |
445 |
# |
446 |
javaHome() { |
447 |
_JAVAVM_SAVE_PROG=${_JAVAVM_PROG} |
448 |
_JAVAVM_PROG=java |
449 |
# options: |
450 |
# -v VERSION: Override JAVA_VERSION |
451 |
# -o OS: override JAVA_OS |
452 |
# -e COMMAND: Set JAVA_HOME according to settings and exec the given command |
453 |
# -h: Print usage and exit |
454 |
while getopts eho:v: OPT; do |
455 |
case "${OPT}" in |
456 |
v ) |
457 |
if [ -z "${OPTARG}" ]; then |
458 |
echo "${_JAVAVM_SAVE_PROG}: error: No version specified for ${OPT}" 1>&2 |
459 |
exit 1 |
460 |
fi |
461 |
export JAVA_VERSION="${OPTARG}" |
462 |
;; |
463 |
o ) |
464 |
if [ -z "${OPTARG}" ]; then |
465 |
echo "${_JAVAVM_SAVE_PROG}: error: No platform specified for ${OPT}" 1>&2 |
466 |
exit 1 |
467 |
fi |
468 |
export JAVA_OS="${OPTARG}" |
469 |
;; |
470 |
e ) |
471 |
if [ -n "${_JAVAVM_SAVE_PATH}" ]; then |
472 |
export PATH=${_JAVAVM_SAVE_PATH} |
473 |
fi |
474 |
ensureJavaHome |
475 |
export JAVA_HOME |
476 |
shift $((OPTIND-1)) |
477 |
exec "${@}" |
478 |
;; |
479 |
h ) |
480 |
echo "Usage: ${_JAVAVM_SAVE_PROG} [-v VERSION] [-o OS] [-e COMMAND]" |
481 |
exit 0 |
482 |
;; |
483 |
? ) |
484 |
echo "Usage: ${_JAVAVM_SAVE_PROG} [-v VERSION] [-o OS] [-e COMMAND]" 2>&1 |
485 |
exit 1 # bad short option reported by getopts |
486 |
;; |
487 |
esac |
488 |
done |
489 |
shift $((OPTIND-1)) |
490 |
|
491 |
ensureJavaHome |
492 |
|
493 |
echo "${JAVA_HOME}" |
494 |
exit 0 |
495 |
} |
496 |
|
497 |
# |
498 |
# Attempt to execute the appropriate JVM |
499 |
# |
500 |
runJava() { |
501 |
# Initialise options |
502 |
if [ -r "${_JAVAVM_OPTS_CONF}" ]; then |
503 |
. "${_JAVAVM_OPTS_CONF}" |
504 |
fi |
505 |
_JAVAVM_OPTS= |
506 |
|
507 |
# Determine JAVA_HOME |
508 |
ensureJavaHome |
509 |
|
510 |
# Set up the options and run the command |
511 |
if [ -x "${_JAVAVM_PROG_PATH}/${_JAVAVM_PROG}" ]; then |
512 |
setJavaOptions "${_JAVAVM_PROG}" "`basename ${JAVA_HOME}`" |
513 |
export JAVA_HOME |
514 |
tryJavaCommand "${_JAVAVM_PROG_PATH}/${_JAVAVM_PROG}" ${_JAVAVM_OPTS} "${@}" |
515 |
fi |
516 |
|
517 |
echo "${_JAVAVM_PROG}: error: no suitable JavaVMs found" 1>&2 |
518 |
exit 1 |
519 |
} |
520 |
|
445 |
# |
521 |
# |
446 |
# Set up an appropriate JAVA_HOME |
522 |
# Set up an appropriate JAVA_HOME |
447 |
# |
523 |
# |
Lines 631-636
setJavaHome() {
Link Here
|
631 |
return 1 |
707 |
return 1 |
632 |
} |
708 |
} |
633 |
|
709 |
|
|
|
710 |
# |
711 |
# Set JAVA_HOME or exit with an error message |
712 |
# |
713 |
ensureJavaHome() { |
714 |
setJavaHome |
715 |
if [ $? != 0 ]; then |
716 |
echo "${_JAVAVM_SAVE_PROG:-_JAVAVM_PROG}: error: no suitable JavaVMs found" 1>&2 |
717 |
exit 1 |
718 |
fi |
719 |
} |
720 |
|
634 |
# Check for an alias and call the appropriate function. |
721 |
# Check for an alias and call the appropriate function. |
635 |
case "${_JAVAVM_PROG}" in |
722 |
case "${_JAVAVM_PROG}" in |
636 |
registervm ) |
723 |
registervm ) |
Lines 645-679
case "${_JAVAVM_PROG}" in
Link Here
|
645 |
manvm ) |
732 |
manvm ) |
646 |
manualpageVM "${1}" |
733 |
manualpageVM "${1}" |
647 |
;; |
734 |
;; |
|
|
735 |
java_home ) |
736 |
javaHome "${@}" |
737 |
;; |
738 |
javavm ) |
739 |
# Backwards compatibility |
740 |
echo "${_JAVAVM_PROG}: warning: The use of 'javavm' as a synonym for 'java' is deprecated" 1>&2 |
741 |
_JAVAVM_PROG=java |
742 |
;; |
648 |
esac |
743 |
esac |
649 |
|
744 |
|
650 |
# Main () |
745 |
runJava "${@}" |
651 |
|
|
|
652 |
# Backwards compatibility |
653 |
if [ "${_JAVAVM_PROG}" = "javavm" ]; then |
654 |
echo "${_JAVAVM_PROG}: warning: The use of 'javavm' as a synonym for 'java' is deprecated" 1>&2 |
655 |
_JAVAVM_PROG=java |
656 |
fi |
657 |
|
658 |
# Initialise options |
659 |
if [ -r "${_JAVAVM_OPTS_CONF}" ]; then |
660 |
. "${_JAVAVM_OPTS_CONF}" |
661 |
fi |
662 |
_JAVAVM_OPTS= |
663 |
|
664 |
# Determine JAVA_HOME |
665 |
setJavaHome |
666 |
if [ $? != 0 ]; then |
667 |
echo "${_JAVAVM_PROG}: error: no suitable JavaVMs found" 1>&2 |
668 |
exit 1 |
669 |
fi |
670 |
|
671 |
# Set up the options and run the command |
672 |
if [ -x "${_JAVAVM_PROG_PATH}/${_JAVAVM_PROG}" ]; then |
673 |
setJavaOptions "${_JAVAVM_PROG}" "`basename ${JAVA_HOME}`" |
674 |
export JAVA_HOME |
675 |
tryJavaCommand "${_JAVAVM_PROG_PATH}/${_JAVAVM_PROG}" ${_JAVAVM_OPTS} "${@}" |
676 |
fi |
677 |
|
678 |
echo "${_JAVAVM_PROG}: error: no suitable JavaVMs found" 1>&2 |
679 |
exit 1 |