This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/main by this push:
     new a788852f6b Improve messages if JAVA_HOME / JRE_HOME not set correctly
a788852f6b is described below

commit a788852f6b48e100bd505dcf7b5633a04f649e7b
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue Apr 11 11:41:55 2023 +0100

    Improve messages if JAVA_HOME / JRE_HOME not set correctly
---
 bin/setclasspath.sh        | 24 +++++++++++++++++++++---
 webapps/docs/changelog.xml |  6 ++++++
 2 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/bin/setclasspath.sh b/bin/setclasspath.sh
index b81bc197d1..f56b2aa473 100755
--- a/bin/setclasspath.sh
+++ b/bin/setclasspath.sh
@@ -53,15 +53,13 @@ if [ -z "$JAVA_HOME" ] && [ "$1" = "debug" ]; then
   echo "JAVA_HOME should point to a JDK in order to run in debug mode."
   exit 1
 fi
-if [ -z "$JRE_HOME" ]; then
-  JRE_HOME="$JAVA_HOME"
-fi
 
 # If we're running under jdb, we need a full jdk.
 if [ "$1" = "debug" ] ; then
   if [ "$os400" = "true" ]; then
     if [ ! -x "$JAVA_HOME"/bin/java ] || [ ! -x "$JAVA_HOME"/bin/javac ]; then
       echo "The JAVA_HOME environment variable is not defined correctly"
+      echo "JAVA_HOME=$JAVA_HOME"
       echo "This environment variable is needed to run this program"
       echo "NB: JAVA_HOME should point to a JDK not a JRE"
       exit 1
@@ -69,6 +67,7 @@ if [ "$1" = "debug" ] ; then
   else
     if [ ! -x "$JAVA_HOME"/bin/java ] || [ ! -x "$JAVA_HOME"/bin/jdb ] || [ ! 
-x "$JAVA_HOME"/bin/javac ]; then
       echo "The JAVA_HOME environment variable is not defined correctly"
+      echo "JAVA_HOME=$JAVA_HOME"
       echo "This environment variable is needed to run this program"
       echo "NB: JAVA_HOME should point to a JDK not a JRE"
       exit 1
@@ -76,6 +75,25 @@ if [ "$1" = "debug" ] ; then
   fi
 fi
 
+if [ -z "$JRE_HOME" ]; then
+  # JAVA_HOME_MUST be set
+  if [ ! -x "$JAVA_HOME"/bin/java ]; then
+    echo "The JAVA_HOME environment variable is not defined correctly"
+    echo "JAVA_HOME=$JAVA_HOME"
+    echo "This environment variable is needed to run this program"
+    echo "NB: JAVA_HOME should point to a JDK not a JRE"
+    exit 1
+  fi
+  JRE_HOME="$JAVA_HOME"
+else
+  if [ ! -x "$JRE_HOME"/bin/java ]; then
+    echo "The JRE_HOME environment variable is not defined correctly"
+    echo "JRE_HOME=$JRE_HOME"
+    echo "This environment variable is needed to run this program"
+    exit 1
+  fi
+fi
+
 # Set standard commands for invoking Java, if not already set.
 if [ -z "$_RUNJAVA" ]; then
   _RUNJAVA="$JRE_HOME"/bin/java
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 9b8cf45186..80eda46d47 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -295,6 +295,12 @@
         2.10.0-SNAPSHOT). This corrects a regression introduced in 11.0.0-M2.
         (markt)
       </update>
+      <fix>
+        Improve the error messages if <code>JRE_HOME</code> or
+        <code>JAVA_HOME</code> are not set correctly. On windows, align the
+        handling of <code>JRE_HOME</code> and <code>JAVA_HOME</code> for the
+        start-up scripts and the service install script. (markt)
+      </fix>
     </changelog>
   </subsection>
 </section>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to