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

Reply via email to