The VMware Cloud Foundation (VCF) Download Tool (VCDT) is how users download both VMware vSphere Foundation (VVF) and VCF) install and upgrade binaries, which can then then be hosted locally as a VCF Offline Depot.
VCFDT is only supported on a Windows or Linux-based operating system, which is a shame since I am exclusively an Apple macOS user š
If you attempt to run VCFDT on macOS (x86 or Apple Silicon), you will come across the following error message: cannot execute binary file: Exec format error
![]()
As you can see from the screenshot above, it attempts to use the Java runtime that has been compiled for Linux, which is denoted by the lin64 directory.
After poking around the VCFDT startup script, I saw that you could set your own custom JAVA path, which gave me an idea ...
Disclaimer: This is not officially supported by Broadcom, please use at your own risk.
It turns out I could install a supported version of OpenJDK on Apple macOS and then use the custom JAVA path to then run the actual VCFDT application, which has worked for me on both Apple macOS x86 and Silicon.
Step 1 - Install OpenJDK 21 using Brew by running the following command:
brew install openjdk@21
Step 2 - Set the CUSTOM_JAVA_PATH variable to /usr which is where the version of Java runtime binary will be installed
export CUSTOM_JAVA_PATH=/usr
Note: You will want to add this to your startup shell script (.zshrc or .bashrc) so that the path is automatically set each time you startup your preferred shell
Now when you re-run the vcf-download-tool command, it will no longer run into the issue as it is using the Java runtime that you had installed. This is how I have been using VCFDT on macOS, which I was recently reminded as I needed to setup a new installation on my Apple Silicon setup.
Thanks for the comment!