我的脚本更改为与sdkman一起安装的jdk,而不是本地jdk。如何使用sdkman在脚本中更改为本地Oracle8 v261 jdk?
脚本
#!/bin/bash
. /usr/local/sdkman/bin/sdkman-init.sh
sdk ls java
for i in {"8_261-oracle", "9.0.4-open"}
do
sdk u java $i
done以输出形式给出
[...]
| | 9.0.4 | open | installed | 9.0.4-open
| >>> | 8.0.265 | open | installed | 8.0.265-open
| | 8.0.232 | open | local only | 8.0.232-open
[...]
Unclassified | | 8_261 | none | local only | 8_261-oracle
================================================================================
Use the Identifier for installation:
$ sdk install java 11.0.3.hs-adpt
================================================================================
Stop! java 8_261-oracle, is not installed.
Using java version 9.0.4-open in this shell.我受到了How to use SDKMAN! to install packages from within scripts的启发。
发布于 2021-09-28 10:05:55
您可以解析sdkman的输出以检索已安装sdks的列表,如下所示:
#!/bin/bash
sdks=`sdk list java | grep installed | awk -F"|" '{print $6}'`
for sdk in ${sdks[@]}; do
sdk use java $sdk
### YOUR CODE HERE
done我省略了. /usr/local/sdkman/bin/sdkman-init.sh部分,因为我建议按照sdkman文档中的建议在bashrc/zshrc中设置它。
来自my ~/.zshrc的示例
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="$YOUR_PATH/.sdkman"
[[ -s "$YOUR_PATH/.sdkman/bin/sdkman-init.sh" ]] && source "$YOUR_PATH/.sdkman/bin/sdkman-init.sh"https://stackoverflow.com/questions/64427138
复制相似问题