This is an automated email from the git hooks/post-receive script. ebourg-guest pushed a commit to branch master in repository java-wrappers.
commit 434a173484e4652abb275b91c1a245adc4a10d95 Author: Vincent Fourmond <fourm...@debian.org> Date: Mon Jan 7 21:17:55 2008 +0000 [java-common] Integrating to java-wrappers modifications suggested by Eric Lavarde --- java-wrappers.7 | 45 +++++++++++++++++++++ java-wrappers.sh | 117 +++++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 137 insertions(+), 25 deletions(-) diff --git a/java-wrappers.7 b/java-wrappers.7 index 25a850b..28c48ad 100644 --- a/java-wrappers.7 +++ b/java-wrappers.7 @@ -46,6 +46,20 @@ command that will be run. If this variable is set, it disables all lookup for a java runtime. .TP +.B JAVA_BINDIR +Specifies a directory that will be looked for a +.I java +or a +.I jdb +executable (depending on the setting of +.IR JAVA_DEBUGGER ). +It has precedence over +.I JAVA_HOME +but not over +.IR JAVA_CMD . + + +.TP .B JAVA_HOME A path to a java runtime. If this variable is set, all lookup for a java runtime is disabled, except that if no @@ -84,6 +98,18 @@ This is probably the most important variable; if it set, the wrapper will print out useful information as it goes by its business, such as which runtime it did find, and which command is run eventually. +.TP +.B JAVA_JARPATH +The path where the wrappers will go looking for +.I jar +archives. If not set, the wrapper will look into the default +directory, +.IR /usr/share/java . +.B Warning : +the wrapper will not look anywhere else than in +.IR JAVA_JARPATH . +Setting it incorrectly will most probably result in early crashes. + .SH EXAMPLES The examples all rely on @@ -103,11 +129,30 @@ Force rasterizer to run with .I JAVA_HOME=/usr/lib/kaffe rasterizer +The same, but using +.IR JAVA_BINDIR : + +.I JAVA_BINDIR=/usr/lib/kaffe/bin rasterizer + Debug rasterizer with Sun's debugger, while printing debugging information from the wrapper: .I DEBUG_WRAPPER=1 JAVA_CMD=/usr/lib/jvm/java-6-sun/bin/jdb rasterizer +.SH BUGS + +Care has been taken to make the wrappers bug-free. If that was not +the case, please file a bug report against +.B java-common +with a java-wrappers in the title. + +If you wish to submit any problem with a java executable relying on +.BR java-wrappers , +please also submit the output of the command run with +.IR DEBUG_WRAPPER=1 . +It will save one mail exchange and therefore potentially reduce the +time it will take to fix the bug. + .SH SEE ALSO .BR java (1), diff --git a/java-wrappers.sh b/java-wrappers.sh index faa2152..27d50cd 100644 --- a/java-wrappers.sh +++ b/java-wrappers.sh @@ -15,11 +15,6 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# Some initializations: -[ "$DESTDIR" ] || DESTDIR= -[ "$JAVA_CLASSPATH" ] || JAVA_CLASSPATH= - - # Display a debugging message java_debug() { if [ "$DEBUG_WRAPPER" ]; then @@ -38,6 +33,24 @@ java_fail() { exit 1; } +# Some initializations: +if [ "$JAVA_CLASSPATH" ]; then + java_debug "Building classpath on JAVA_CLASSPATH = '$JAVA_CLASSPATH'" +else + JAVA_CLASSPATH= +fi +if [ "$DESTDIR" ]; then + java_debug "Using DESTDIR = '$DESTDIR'" +else + DESTDIR="" +fi + +if [ "$JAVA_JARPATH" ]; then + java_debug "Jar lookup is done in JAVA_JARPATH = '$JAVA_JARPATH'" +else + JAVA_JARPATH=$DESTDIR/usr/share/java +fi + # Try to find a Java runtime and set JAVA_HOME and JAVA_CMD accordingly. # If JAVA_CMD exists, nothing is done. If JAVA_HOME exists, only that @@ -58,7 +71,13 @@ java_fail() { # This information is currently *far from complete* !!! find_java_runtime() { # First, known runtimes: - sun_java="/usr/lib/jvm/java-6-sun /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.4-sun /usr/lib/j2*1.[456]-sun" + + sun5="/usr/lib/jvm/java-1.5.0-sun /usr/lib/j2*1.5-sun" + sun4="/usr/lib/j2*1.4-sun" + sun6="/usr/lib/jvm/java-6-sun /usr/lib/j2*1.6-sun" + + sun_java="$sun4 $sun5 $sun6" + gcj2="/usr/lib/jvm/java-*-gcj-4.* " sablevm="/usr/lib/sablevm" kaffe="/usr/lib/kaffe /usr/lib/kaffe/pthreads /usr/lib/kaffe/jthreads" @@ -81,8 +100,27 @@ find_java_runtime() { xml_extra="/usr/lib/jvm/java-6-sun /usr/lib/jvm/java-1.5.0-sun" if [ "$JAVA_CMD" ]; then - java_debug "Using already set JAVA_CMD = $JAVA_CMD" - return 0; # Nothing to do + if which "$JAVA_CMD" > /dev/null; then + java_debug "Using already set JAVA_CMD = '$JAVA_CMD' => '"`which "$JAVA_CMD"`"'" + return 0; # Nothing to do + else + java_warning "JAVA_CMD was set to '$JAVA_CMD', but which(1) does not find it." + java_warning "Therefore ignoring JAVA_CMD" + fi + fi + + if [ -z "$JAVA_BINDIR" ]; then + if [ "$JAVA_DEBUGGER" ] && [ -x "$JAVA_BINDIR/jdb" ]; then + JAVA_CMD="$JAVA_BINDIR/jdb" + elif [ -x "$JAVA_BINDIR/java" ]; then + JAVA_CMD="$JAVA_BINDIR/java" + fi + if [ "$JAVA_CMD" ]; then + java_debug "Using '$JAVA_CMD' from JAVA_BINDIR = '$JAVA_BINDIR'" + return 0; + else + java_warning "JAVA_BINDIR = '$JAVA_BINDIR' does not point to a java binary" + fi fi if [ -z "$JAVA_HOME" ]; then @@ -97,7 +135,11 @@ find_java_runtime() { ;; sun) DIRS=$sun_java ;; - sun6) DIRS=/usr/lib/jvm/java-6-sun + sunmax5) DIRS="$sun4 $sun5" + ;; + sunmin5) DIRS="$sun5 $sun6" + ;; + sun6) DIRS=$sun6 ;; fullxml) DIRS=$xml_extra ;; @@ -111,6 +153,8 @@ find_java_runtime() { break; fi done + else + java_debug "Using provided JAVA_HOME = '$JAVA_HOME'" fi if [ "$JAVA_HOME" ] ; then if [ "$JAVA_DEBUGGER" ] && [ -x "$JAVA_HOME/bin/jdb" ]; then @@ -118,8 +162,8 @@ find_java_runtime() { else JAVA_CMD="$JAVA_HOME/bin/java" fi - java_debug "Found JAVA_HOME = $JAVA_HOME" - java_debug "Found JAVA_CMD = $JAVA_CMD" + java_debug "Found JAVA_HOME = '$JAVA_HOME'" + java_debug "Found JAVA_CMD = '$JAVA_CMD'" return 0 # Fine else java_warning "No java runtime was found for flavor '${1:-none}'" @@ -134,16 +178,36 @@ require_java_runtime() { java_fail "Unable to find an appropriate java runtime. See java_wrappers(7) for help" } +# Looks for a jar file and returns its location as the +# found_jar variable, or fails if no jar was found. +locate_jar() { + jar="$1" + if [ -r $JAVA_JARPATH/$jar ]; then + found_jar=$JAVA_JARPATH/$jar + elif [ -r $JAVA_JARPATH/$jar.jar ]; then + found_jar=$JAVA_JARPATH/$jar.jar + elif [ -r $jar ]; then + # Maybe issue a warning that jars should not be looked + # for absolutely ? + found_jar=$JAVA_JARPATH/$jar + elif [ -r $jar.jar ]; then + # Maybe issue a warning that jars should not be looked + # for absolutely ? + found_jar=$JAVA_JARPATH/$jar.jar + else + return 1 # Not found + fi + return 0 # Found +} + # Find jars and add them to the classpath find_jars() { looked_for_jars=1 for jar in $@ ; do - if [ -r $DESTDIR/usr/share/java/$jar ]; then - JAVA_CLASSPATH=$JAVA_CLASSPATH:$DESTDIR/usr/share/java/$jar - elif [ -r $DESTDIR/usr/share/java/$jar.jar ]; then - JAVA_CLASSPATH=$JAVA_CLASSPATH:$DESTDIR/usr/share/java/$jar.jar + if locate_jar $jar; then + JAVA_CLASSPATH=$JAVA_CLASSPATH:$found_jar else - java_warning "Unable to locate $jar in $DESTDIR/usr/share/java/" + java_warning "Unable to locate $jar in $JAVA_JARPATH" fi done } @@ -153,32 +217,30 @@ find_jars() { find_one_jar_in() { looked_for_jars=1 for jar in $@ ; do - if [ -r $DESTDIR/usr/share/java/$jar ]; then - JAVA_CLASSPATH=$JAVA_CLASSPATH:$DESTDIR/usr/share/java/$jar - return 0 - elif [ -r $DESTDIR/usr/share/java/$jar.jar ]; then - JAVA_CLASSPATH=$JAVA_CLASSPATH:$DESTDIR/usr/share/java/$jar.jar + if locate_jar $jar; do + JAVA_CLASSPATH=$JAVA_CLASSPATH:$found_jar return 0 fi done - java_warning "Could fine none of $@ in $DESTDIR/usr/share/java/" + java_warning "Could fine none of $@ in $JAVA_JARPATH" return 1 } # Runs the program ! run_java() { if [ -z "$JAVA_CMD" ]; then - java_warning "No JAVA_CMD set for run_java, using JAVA_CMD = java" + java_warning "No JAVA_CMD set for run_java, falling back to JAVA_CMD = java" JAVA_CMD=java fi if [ "$FORCE_CLASSPATH" ]; then - java_debug "Using unmodified classpath : $FORCE_CLASSPATH"; + java_debug "Using imposed classpath : FORCE_CLASSPATH = '$FORCE_CLASSPATH'"; cp="-classpath $FORCE_CLASSPATH"; elif [ "$JAVA_CLASSPATH" ]; then cp="-classpath $JAVA_CLASSPATH"; else cp=""; fi + java_debug "Environment variable CLASSPATH is '$CLASSPATH'" java_debug "Runnning $JAVA_CMD $JAVA_ARGS $cp $@" exec $JAVA_CMD $JAVA_ARGS $cp "$@" } @@ -190,5 +252,10 @@ run_jar() { java_warning "It is most likely useless to use find_jar when running" java_warning "a class with run_jar (-classpath is ignored)" fi - run_java -jar "$@" + if locate_jar $1; then + shift + run_java -jar "$@" + else + java_fail "Unable to find jar $1 in $JAVA_JARPATH" + fi } \ No newline at end of file -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/java-wrappers.git _______________________________________________ pkg-java-commits mailing list pkg-java-comm...@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits