Hi Anil,
I will share how I set up Visual Studio 2022 (2019 is a bit old now) for
building JDK.
First, I go to https://visualstudio.microsoft.com to download the visual
studio setup (which installs an installer)
Once in the installer, go to visual studio, and select "Desktop Development
with C++" which will install everything you need.

In your "C:\Program Files" (or C:\PROGRA~1) open administrator powershell
(you can do it by right-clicking on win start menu icon) run:
fsutil file setshortname "Microsoft Visual Studio" MICROS~3
This is the only directory that really need short path; the rest of the
path to cl already has no space.

And yes, I am using Windows11+cygwin to build openjdk. I think you already
have 8dot3name enabled so you can see PROGRA~1, you shouldn't be far.

On Mon, Jul 1, 2024 at 2:31 PM Anil <1dropafl...@gmail.com> wrote:

> [Erik] " You could try enabling 8dot3name on the whole volume (C:) using
> fsutil [1],  "
> I don't know what this means and the side effects. I don't want to try
> this on the entire C:
> There must be people using Windows11 and Cygwin64 who have gotten OpenJDK
> to build?
>
> On Mon, Jul 1, 2024 at 1:59 AM <erik.joels...@oracle.com> wrote:
>
>> Hello Anil,
>> On 6/30/24 12:50, Anil wrote:
>>
>> I went into the VC.../bin directory to get the actual path and tried
>> again, but it failed.
>>
>> $ bash configure --with-boot-jdk=/c/Users/Anil/OpenJDK/jdk-22.0.1
>> --enable-debug --with-tools-dir="C:\PROGRA~2\Microsoft Visual
>> Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin"
>>
>> The OpenJDK build cannot handle paths with spaces in them, and on
>> Windows, where the default installation directories of things like Visual
>> Studio and the SDK have spaces in the directory names, we rely on short
>> paths to work around this. If you installed Visual Studio in the default
>> location, you should not need to point to a tools dir, and doing so won't
>> help if the paths can't be expressed without spaces in them. It's annoying
>> that Windows seems to have turned off short path generation by default in
>> later versions.
>>
>> You could try enabling 8dot3name on the whole volume (C:) using fsutil
>> [1], but you probably need to reinstall Visual Studio after that to get the
>> short path names generated for all the directories in the installation.
>>
>> /Erik
>>
>> [1]
>> https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-8dot3name
>>
>> configure: Using default toolchain microsoft (Microsoft Visual Studio)
>> configure: The path given by --with-tools-dir does not contain a valid
>> configure: Visual Studio installation. Please point to the VC/bin or
>> VC/bin/amd64
>> configure: directory within the Visual Studio installation
>> configure: error: Cannot locate a valid Visual Studio installation
>> configure exiting with result code 1
>>
>>
>> On Sun, Jun 30, 2024 at 2:07 PM Anil <1dropafl...@gmail.com> wrote:
>>
>>> Thank you for your reply.
>>> I tried without those flags and got the same error message
>>> $ bash configure --with-boot-jdk=/c/Users/Anil/OpenJDK/jdk-22.0.1
>>> ...
>>> configure: Using default toolchain microsoft (Microsoft Visual Studio)
>>> configure: error: Cannot locate a valid Visual Studio installation
>>> configure exiting with result code 1
>>>
>>> checking the shortnames.
>>>
>>> C:\>dir /x
>>> Directory of C:\
>>> 06/29/2024  09:43 PM    <DIR>          PROGRA~1     Program Files
>>> 03/01/2024  06:34 PM    <DIR>          PROGRA~2     Program Files (x86)
>>>
>>> Directory of C:\PROGRA~1
>>> C:\PROGRA~1>dir /x
>>> 06/29/2024  09:43 PM    <DIR>                       Microsoft Visual
>>> Studio
>>>
>>> Directory of C:\PROGRA~2
>>> C:\PROGRA~2>dir /x
>>> 06/29/2024  09:41 PM    <DIR>          Microsoft Visual Studio
>>>
>>> I don't see any shortnames set.
>>>
>>> In the Visual Studio Installer, both Visual Studio Build Tools 2019 and
>>> Visual Studio Community are set.
>>> When I click on the Build Tools, I see the checkbox for Desktop C++ is
>>> checked.
>>>
>>>
>>> I saw that the C++
>>>
>>>
>>>
>>> On Sun, Jun 30, 2024 at 1:24 PM Chen Liang <liangchenb...@gmail.com>
>>> wrote:
>>>
>>>> Usually Microsoft Visual Studio c compiler (as installed by Visual
>>>> Studio installer) already has short names set. It seems the short name has
>>>> to be 8 characters in length and you can't set it when some process is
>>>> running in that directory. You can check the short path in Windows
>>>> cmd's "dir /x" command. And try configure without --with-toolchain-version
>>>> and --with-tools-dir and only set these flags if it fails without those
>>>> flags: you declare version is 22 but you point to MSVC 2019's directory,
>>>> and you should point to the bin directory within the VC directory.
>>>>
>>>> On Sun, Jun 30, 2024 at 12:57 PM Anil <1dropafl...@gmail.com> wrote:
>>>>
>>>>> Update:
>>>>> I was able to get past the error
>>>>> I installed Visual Studio 2022, rebooted, but it still cannot detect
>>>>> it.
>>>>>
>>>>> PS C:\> fsutil file setshortname "Program Files (x86)" PROGRA~1
>>>>> Error:  Access is denied.
>>>>>
>>>>> PS C:\Program Files (x86)> fsutil file setshortname  "Microsoft Visual
>>>>> Studio"  Microsoft_Visual_Studio_2019
>>>>> Error:  The parameter is incorrect.
>>>>>
>>>>> $ bash configure --with-boot-jdk=/c/Users/Anil/OpenJDK/jdk-22.0.1
>>>>> --with-toolchain-version=2022 --enable-debug --with-tools-dir="C:\Program
>>>>> Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC"
>>>>>
>>>>> configure: Using default toolchain microsoft (Microsoft Visual Studio)
>>>>> configure: The path given by --with-tools-dir does not contain a valid
>>>>> configure: Visual Studio installation. Please point to the VC/bin or
>>>>> VC/bin/amd64
>>>>> configure: directory within the Visual Studio installation
>>>>> configure: error: Cannot locate a valid Visual Studio installation
>>>>> configure exiting with result code 1
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Jun 28, 2024 at 8:50 PM Anil <1dropafl...@gmail.com> wrote:
>>>>>
>>>>>> (changed Subject line. was: Is anyone able to build the JDK on
>>>>>> Windows using VirtualBox to host Ubuntu?)
>>>>>>
>>>>>> I downloaded and unzipped openjdk.
>>>>>> $ ls
>>>>>> jdk  jdk-22.0.1  openjdk-22.0.1_windows-x64_bin.zip
>>>>>>
>>>>>> but still I get the same error message
>>>>>>
>>>>>> configure: Could not find a valid Boot JDK. OpenJDK distributions are
>>>>>>> available at http://jdk.java.net/.
>>>>>>> configure: This might be fixed by explicitly setting --with-boot-jdk
>>>>>>> configure: error: Cannot continue
>>>>>>> configure exiting with result code 1
>>>>>>
>>>>>>
>>>>>> I am wondering if I should *not *install the Open JDK in the
>>>>>> directory created by Cygwin (/c/Users/Anil/OpenJDK) but install it in the
>>>>>> /cygdrive Windows folders?
>>>>>> (I observe that the folder created in Cygwin is not visible outside,
>>>>>> in Windows even after rebooting the laptop).
>>>>>> Can someone please confirm?
>>>>>> thanks,
>>>>>> Anil
>>>>>>
>>>>>>
>>>>>> On Fri, Jun 28, 2024 at 6:48 PM Anil <1dropafl...@gmail.com> wrote:
>>>>>>
>>>>>>> Thank you. I installed Cygwin on my Windows 11 laptop, and after
>>>>>>> overcoming some minor blocks, ran 'bash configure'.
>>>>>>> Am I correct in assuming that I also need to have Open JDK
>>>>>>> installed, not the Oracle JDK?
>>>>>>> I have Java 17 from Oracle installed.
>>>>>>>
>>>>>>> configure: Found potential Boot JDK using JAVA_HOME
>>>>>>> configure: Potential Boot JDK found at
>>>>>>> /cygdrive/c/progra~1/java/jdk-17.0.4.1 is); ignoringot(TM) 64-Bit 
>>>>>>> Server VM
>>>>>>> (build 17.0.4.1+1-LTS-2, mixed mode, sharing)
>>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24)
>>>>>>> checking for javac...
>>>>>>> /cygdrive/c/progra~1/common~1/oracle/java/javapath/javac.exe
>>>>>>> checking for java...
>>>>>>> /cygdrive/c/progra~1/common~1/oracle/java/javapath/java.exe
>>>>>>> configure: Found potential Boot JDK using well-known locations (in
>>>>>>> /cygdrive/c/progra~1/java/jdk-17.0.4.1)
>>>>>>> configure: Potential Boot JDK found at
>>>>>>> /cygdrive/c/progra~1/java/jdk-17.0.4.1 is); ignoringot(TM) 64-Bit 
>>>>>>> Server VM
>>>>>>> (build 17.0.4.1+1-LTS-2, mixed mode, sharing)
>>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24)
>>>>>>> configure: Found potential Boot JDK using well-known locations (in
>>>>>>> /cygdrive/c/progra~1/java/jdk-11.0.10)
>>>>>>> configure: Potential Boot JDK found at
>>>>>>> /cygdrive/c/progra~1/java/jdk-11.0.10 is ); ignoringot(TM) 64-Bit 
>>>>>>> Server VM
>>>>>>> 18.9 (build 11.0.10+8-LTS-162, mixed mode)
>>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24)
>>>>>>> configure: Found potential Boot JDK using well-known locations (in
>>>>>>> /cygdrive/c/progra~1/java/javafx-sdk-11.0.2)
>>>>>>> configure: Potential Boot JDK found at
>>>>>>> /cygdrive/c/progra~1/java/javafx-sdk-11.0.2 did not contain bin/java;
>>>>>>> ignoring
>>>>>>> configure: Found potential Boot JDK using well-known locations (in
>>>>>>> /cygdrive/c/progra~1/java/jdk-17.0.4.1)
>>>>>>> configure: Potential Boot JDK found at
>>>>>>> /cygdrive/c/progra~1/java/jdk-17.0.4.1 is); ignoringot(TM) 64-Bit 
>>>>>>> Server VM
>>>>>>> (build 17.0.4.1+1-LTS-2, mixed mode, sharing)
>>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24)
>>>>>>> configure: Found potential Boot JDK using well-known locations (in
>>>>>>> /cygdrive/c/progra~1/java/jdk-11.0.10)
>>>>>>> configure: Potential Boot JDK found at
>>>>>>> /cygdrive/c/progra~1/java/jdk-11.0.10 is ); ignoringot(TM) 64-Bit 
>>>>>>> Server VM
>>>>>>> 18.9 (build 11.0.10+8-LTS-162, mixed mode)
>>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24)
>>>>>>> configure: Found potential Boot JDK using well-known locations (in
>>>>>>> /cygdrive/c/progra~1/java/javafx-sdk-11.0.2)
>>>>>>> configure: Potential Boot JDK found at
>>>>>>> /cygdrive/c/progra~1/java/javafx-sdk-11.0.2 did not contain bin/java;
>>>>>>> ignoring
>>>>>>> configure: Found potential Boot JDK using well-known locations (in
>>>>>>> /cygdrive/c/Program Files/Java/jdk-17.0.4.1)
>>>>>>> configure: Potential Boot JDK found at /cygdrive/c/Program
>>>>>>> Files/Java/jdk-17.0.4); ignoringot(TM) 64-Bit Server VM (build
>>>>>>> 17.0.4.1+1-LTS-2, mixed mode, sharing)
>>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24)
>>>>>>> configure: Found potential Boot JDK using well-known locations (in
>>>>>>> /cygdrive/c/Program Files/Java/jdk-11.0.10)
>>>>>>> configure: Potential Boot JDK found at /cygdrive/c/Program
>>>>>>> Files/Java/jdk-11.0.1); ignoringot(TM) 64-Bit Server VM 18.9 (build
>>>>>>> 11.0.10+8-LTS-162, mixed mode)
>>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24)
>>>>>>> configure: Found potential Boot JDK using well-known locations (in
>>>>>>> /cygdrive/c/Program Files/Java/javafx-sdk-11.0.2)
>>>>>>> configure: Potential Boot JDK found at /cygdrive/c/Program
>>>>>>> Files/Java/javafx-sdk-11.0.2 did not contain bin/java; ignoring
>>>>>>> configure: Could not find a valid Boot JDK. OpenJDK distributions
>>>>>>> are available at http://jdk.java.net/.
>>>>>>> configure: This might be fixed by explicitly setting --with-boot-jdk
>>>>>>> configure: error: Cannot continue
>>>>>>> configure exiting with result code 1
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Jun 27, 2024 at 9:06 AM <erik.joels...@oracle.com> wrote:
>>>>>>>
>>>>>>>> Hello Anil,
>>>>>>>>
>>>>>>>> Building in a VM on a laptop should be doable, but given how
>>>>>>>> resource intensive the JDK build is, you could run into problems like 
>>>>>>>> you
>>>>>>>> describe. You are most likely to get the best build performance running
>>>>>>>> natively on the machine and OS you have, so my recommendation is to 
>>>>>>>> build
>>>>>>>> for Windows in your case. If you still prefer to build for Linux, I 
>>>>>>>> think
>>>>>>>> the best option is to use WSL. See doc/building.md for instructions on 
>>>>>>>> how
>>>>>>>> to build for Linux in WSL. To build for Windows, I recommend installing
>>>>>>>> Cygwin as the most straightforward and well tested option for a POSIX
>>>>>>>> support layer on Windows. Once installed, you won't need to run any 
>>>>>>>> Windows
>>>>>>>> commands as Cygwin emulates a Linux/Unix environment. Again see
>>>>>>>> doc/building.md for instructions on how to install a build environment 
>>>>>>>> on
>>>>>>>> Windows.
>>>>>>>>
>>>>>>>> /Erik
>>>>>>>> On 6/27/24 04:51, Anil wrote:
>>>>>>>>
>>>>>>>> I want to try out a small contribution to the JDK and want to build
>>>>>>>> the JDK first.
>>>>>>>> I have a Windows 11 laptop.
>>>>>>>>
>>>>>>>> I am not comfortable with the Windows commands and someone
>>>>>>>> mentioned in this forum that most of the building is done on Linux.
>>>>>>>> So I installed VirtualBox 7.0.18 and Ubuntu 24.04. however I was
>>>>>>>> getting black screens and freezing. I downgraded the Ubuntu to 222.04 
>>>>>>>> and
>>>>>>>> still got black screens. I don't know why this is happening.
>>>>>>>> Any advice appreciated.
>>>>>>>> Anil
>>>>>>>>
>>>>>>>> On Tue, Jun 18, 2024, 7:25 PM Anil <1dropafl...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hello,
>>>>>>>>> I want to try out a small contribution to the JDK and wanted to
>>>>>>>>> build the JDK first,
>>>>>>>>> before I change the code.
>>>>>>>>> I forked and cloned the jdk following the instructions at The
>>>>>>>>> OpenJDK Developers' Guide – OpenJDK Developers’ Guide
>>>>>>>>> <https://openjdk.org/guide/#cloning-the-jdk>
>>>>>>>>>
>>>>>>>>> I am on Windows 11.
>>>>>>>>> These instructions are given on the page but I am unsure which of
>>>>>>>>> these to execute since I have already forked and cloned the git repo
>>>>>>>>>
>>>>>>>>> $ wget 
>>>>>>>>> https://download.java.net/java/GA/jdk16/7863447f0ab643c585b9bdebf67c69db/36/GPL/openjdk-16_linux-x64_bin.tar.gz
>>>>>>>>> $ tar xzf openjdk-16_linux-x64_bin.tar.gz
>>>>>>>>> $ sudo apt-get install autoconf zip make gcc g++ libx11-dev 
>>>>>>>>> libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev 
>>>>>>>>> libcups2-dev libfontconfig1-dev libasound2-dev
>>>>>>>>> $ cd jdk
>>>>>>>>> $ sh ./configure --with-boot-jdk=$HOME/jdk-16/
>>>>>>>>> $ make images
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Do I still need to do the wget?
>>>>>>>>> Also, I wondered if I should use book jdk-17 instead of jdk-16 as
>>>>>>>>> in the instructions above.
>>>>>>>>> thanks,
>>>>>>>>> Anil
>>>>>>>>>
>>>>>>>>>

Reply via email to