我正在设置一台新机器并在 Cygwin 上安装 sdkman 以安装 Java。我在我以前的机器(也是 Win 10)上进行了完全相同的设置。
安装了Cygwin,并且需要sdkman,安装了zip和unzip包。现在我收到以下错误:
$ sdk i java 11.0.3-zulu
Downloading: java 11.0.3-zulu
In progress...
Warning: Failed to create the file
Warning: /home/whyph/.sdkman/tmp/D2txrZkztdcZKSIltTtxclUhHkzF9yIf.bin: No such
Warning: file or directory
curl: (23) Failed writing body (0 != 14095)
mv: cannot stat '/home/whyph/.sdkman/tmp/D2txrZkztdcZKSIltTtxclUhHkzF9yIf.bin': No such file or directory
尝试禁用Windows防火墙并以管理员身份运行Cygwin,但都没有改变错误。在我的上一台机器上开箱即用,但无法弄清楚可能有什么不同。
我发现了问题——卷曲错误。事实证明,Windows 10 现在附带了 curl,它就在您的路上。我以为它是 Cygwin 的基础包之一,但事实并非如此,而且 Windows 版本与 SDKMAN 不兼容,尽管它可以安装它。修复:
最近我遇到了同样的问题,原因很简单......我忘记在我的 Cygwin 上安装 cURL。希望有帮助!
在Windows上安装SDKMAN的步骤
以管理员权限运行Windows Terminal。打开里面的 git bash 。 (Ctrl + Shift + 4)
winget install -e --id GnuWin32.Zip
mkdir ~/bin
cp /usr/bin/unzip ~/bin/zip
curl -s "https://beta.sdkman.io" | bash
source "/c/Users/ajink/.sdkman/bin/sdkman-init.sh"
sdk selfupdate force
这样就可以安装Java了。
sdk install java 17.0.2-open
完成! :)
我最近遇到了同样的问题,我设法让它以某种方式工作。
在sdkman源文件中,我修改了.sdkman/src/sdkman-install.sh第150行。
我用经典的重定向“>”替换了下面一行的“--output”。 在我重新启动 cygwin 后,命令终于起作用了。
__sdkman_secure_curl_download "${download_url}" --output "${binary_input}"
希望有帮助!
请记住,SDKMAN 需要 bash 环境才能运行。在Windows上,它不能本地安装;你需要 WSL 或 MSYS+MinGW。我们不再支持 Cygwin。
来源:SDKMAN安装页面(2024-02-11)