Skip to content

Commit 77a5b7b

Browse files
committedJul 7, 2021
8269761: idea.sh missing .exe suffix when invoking javac on WSL
Reviewed-by: mcimadamore, erikj
1 parent 248aa50 commit 77a5b7b

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed
 

‎bin/idea.sh

+18-8
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ do
6969
shift
7070
done
7171

72+
if [ -e $IDEA_OUTPUT ] ; then
73+
rm -r $IDEA_OUTPUT
74+
fi
7275
mkdir -p $IDEA_OUTPUT || exit 1
7376
cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
7477

@@ -224,26 +227,33 @@ fi
224227
CP=$ANT_HOME/lib/ant.jar
225228
rm -rf $CLASSES; mkdir $CLASSES
226229

227-
if [ "x$CYGPATH" != "x" ] ; then ## CYGPATH may be set in env.cfg
228-
JAVAC_SOURCE_FILE=`$CYGPATH -am $IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java`
229-
JAVAC_SOURCE_PATH=`$CYGPATH -am $IDEA_OUTPUT/src`
230-
JAVAC_CLASSES=`$CYGPATH -am $CLASSES`
231-
JAVAC_CP=`$CYGPATH -am $CP`
230+
# If we have a Windows boot JDK, we need a .exe suffix
231+
if [ -e "$BOOT_JDK/bin/java.exe" ] ; then
232+
JAVAC=javac.exe
233+
else
232234
JAVAC=javac
233-
elif [ "x$WSL_DISTRO_NAME" != "x" ]; then
235+
fi
236+
237+
# If we are on WSL, the boot JDK might be either Windows or Linux,
238+
# and we need to use realpath instead of CYGPATH to make javac work on both.
239+
# We need to handle this case first since CYGPATH might be set on WSL.
240+
if [ "x$WSL_DISTRO_NAME" != "x" ]; then
234241
JAVAC_SOURCE_FILE=`realpath --relative-to=./ $IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java`
235242
JAVAC_SOURCE_PATH=`realpath --relative-to=./ $IDEA_OUTPUT/src`
236243
JAVAC_CLASSES=`realpath --relative-to=./ $CLASSES`
237244
ANT_TEMP=`mktemp -d -p ./`
238245
cp $ANT_HOME/lib/ant.jar $ANT_TEMP/ant.jar
239246
JAVAC_CP=$ANT_TEMP/ant.jar
240-
JAVAC=javac.exe
247+
elif [ "x$CYGPATH" != "x" ] ; then ## CYGPATH may be set in env.cfg
248+
JAVAC_SOURCE_FILE=`$CYGPATH -am $IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java`
249+
JAVAC_SOURCE_PATH=`$CYGPATH -am $IDEA_OUTPUT/src`
250+
JAVAC_CLASSES=`$CYGPATH -am $CLASSES`
251+
JAVAC_CP=`$CYGPATH -am $CP`
241252
else
242253
JAVAC_SOURCE_FILE=$IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java
243254
JAVAC_SOURCE_PATH=$IDEA_OUTPUT/src
244255
JAVAC_CLASSES=$CLASSES
245256
JAVAC_CP=$CP
246-
JAVAC=javac
247257
fi
248258

249259
$BOOT_JDK/bin/$JAVAC -d $JAVAC_CLASSES -sourcepath $JAVAC_SOURCE_PATH -cp $JAVAC_CP $JAVAC_SOURCE_FILE

0 commit comments

Comments
 (0)
Please sign in to comment.