Getting JAVA_HOME at runtime
Jean-Baptiste Quenot
jbq at caraldi.com
Wed Apr 19 13:40:42 UTC 2006
* Herve Quiroz:
> javavmwrapper, OTOH, uses the logic from bsd.java.mk (not
> reimplementing it) to pick a port that is *already* installed
> via the ports.
You're right, but if it can't read bsd.port.mk, javavm tries to
find the JDK itself from line 465 to line 573, that's why I say we
have two implementations of the lookup algorithm.
I'm attaching a patch to add documentation to javavm, and to allow
for a JAVAVM_DRY_RUN environment variable that makes javavm find
the best suitable JVM and print the corresponding value of
JAVA_HOME instead of executing it.
If you are interested, I can submit a PR.
For this to work correctly, we need javavm to stop upon failure.
Until now, when the java program cannot be exec-uted, javavm
issues a warning and goes on to the next JVM.
Best regards,
--
Jean-Baptiste Quenot
aka John Banana Qwerty
http://caraldi.com/jbq/
-------------- next part --------------
--- javavm.orig Wed Apr 19 15:20:23 2006
+++ javavm Wed Apr 19 15:36:01 2006
@@ -6,6 +6,24 @@
# They can then be selected from based on environment variables and the
# configuration file.
#
+# Environment variables affecting the behaviour of this program:
+#
+#
+# JAVA_HOME
+#
+# Allows to choose the preferred JVM
+#
+#
+# JAVA_VERSION
+#
+# Allows to choose a preferred JVM version
+#
+#
+# JAVAVM_DRY_RUN
+#
+# When set, find the best suitable JVM and print the corresponding value of
+# JAVA_HOME instead of executing it
+#
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42, (c) Poul-Henning Kamp):
# Maxim Sobolev <sobomax at FreeBSD.org> wrote this file. As long as you retain
@@ -43,13 +61,19 @@
tryJavaCommand () {
# Check for the command being executable and exec it if so.
if [ -x "${1}" ]; then
- if [ ! -z "${SAVE_PATH}" ]; then
- export PATH=${SAVE_PATH}
+ if [ -z "$JAVAVM_DRY_RUN" ] ; then
+ if [ ! -z "${SAVE_PATH}" ]; then
+ export PATH=${SAVE_PATH}
+ fi
+
+ exec "${@}"
+ echo "${IAM}: error: couldn't run specified Java command - \"${1}\"" >&2
+ exit 1
+ else
+ echo "${JAVA_HOME}"
+ exit 0
fi
- exec "${@}"
fi
-
- echo "${IAM}: warning: couldn't run specified Java command - \"${1}\"" >&2
}
#
More information about the freebsd-java
mailing list