On Mon, 5 Jul 2021 10:40:15 GMT, Jorn Vernee <jver...@openjdk.org> wrote:
>> From the JBS issue: >> >> At the end, idea.sh tries to invoke javac, but when running on WSL this >> results in the following error: >> >> bin/idea.sh: line 249: /mnt/c/progra~1/java/jdk-16/bin/javac: No such >> file or directory >> >> Adding a .exe suffix to the javac path fixes this issue, which can be done >> just for WSL. > > Jorn Vernee has updated the pull request with a new target base due to a > merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains four additional > commits since the last revision: > > - Merge branch 'master' into Idea_Exe > - Add .exe suffix when invoking javac on WSL > - use CYGPATH variable instead of calling cygpath directly > - Allow specifying conf to idea.sh Hmm, now that I'm looking again, I see that an earlier block also tries to set `JAVAC` to `javac.exe` on WSL, but it never gets executed because `CYGPATH` is set in my environment: if [ "x$CYGPATH" != "x" ] ; then ## CYGPATH may be set in env.cfg ... JAVAC=javac elif [ "x$WSL_DISTRO_NAME" != "x" ]; then ... JAVAC=javac.exe else Of course, when I remove my fix, and move the `"x$WSL_DISTRO_NAME" != "x"` to the front, this also fails on a linux boot JDK because `javac.exe` doesn't exist. If I remove the `.exe` suffix then the usage of `realpath` in that same block makes the script work on a linux boot JDK, but fails again on a Windows boot JDK because of the missing .exe suffix. I'll try to see if I can make the existing logic work on both JDK types ------------- PR: https://git.openjdk.java.net/jdk/pull/4656