83
83
# This is normally unused
84
84
# shellcheck disable=SC2034
85
85
APP_BASE_NAME=${0##*/ }
86
- APP_HOME=$( cd " ${APP_HOME:- ./ } " && pwd -P ) || exit
86
+ # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
87
+ APP_HOME=$( cd " ${APP_HOME:- ./ } " > /dev/null && pwd -P ) || exit
87
88
88
89
# Use the maximum available, or set MAX_FD != -1 to use that value.
89
90
MAX_FD=maximum
@@ -130,26 +131,29 @@ location of your Java installation."
130
131
fi
131
132
else
132
133
JAVACMD=java
133
- which java > /dev/null 2>&1 || die " ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
134
+ if ! command -v java > /dev/null 2>&1
135
+ then
136
+ die " ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
134
137
135
138
Please set the JAVA_HOME variable in your environment to match the
136
139
location of your Java installation."
140
+ fi
137
141
fi
138
142
139
143
# Increase the maximum file descriptors if we can.
140
144
if ! " $cygwin " && ! " $darwin " && ! " $nonstop " ; then
141
145
case $MAX_FD in # (
142
146
max* )
143
147
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
144
- # shellcheck disable=SC3045
148
+ # shellcheck disable=SC2039, SC3045
145
149
MAX_FD=$( ulimit -H -n ) ||
146
150
warn " Could not query maximum file descriptor limit"
147
151
esac
148
152
case $MAX_FD in # (
149
153
' ' | soft) : ;; # (
150
154
* )
151
155
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
152
- # shellcheck disable=SC3045
156
+ # shellcheck disable=SC2039, SC3045
153
157
ulimit -n " $MAX_FD " ||
154
158
warn " Could not set maximum file descriptor limit to $MAX_FD "
155
159
esac
198
202
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
199
203
DEFAULT_JVM_OPTS=' "-Xmx64m" "-Xms64m"'
200
204
201
- # Collect all arguments for the java command;
202
- # * $ DEFAULT_JVM_OPTS, $ JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
203
- # shell script including quotes and variable substitutions, so put them in
204
- # double quotes to make sure that they get re- expanded; and
205
- # * put everything else in single quotes, so that it's not re-expanded .
205
+ # Collect all arguments for the java command:
206
+ # * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
207
+ # and any embedded shellness will be escaped.
208
+ # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
209
+ # treated as '${Hostname}' itself on the command line .
206
210
207
211
set -- \
208
212
" -Dorg.gradle.appname=$APP_BASE_NAME " \
@@ -242,4 +246,4 @@ eval "set -- $(
242
246
tr ' \n' ' '
243
247
) " ' "$@"'
244
248
245
- exec " $JAVACMD " " $@ "
249
+ exec " $JAVACMD " " $@ "
0 commit comments