首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SDKMAN中使用本地jdk!脚本

如何在SDKMAN中使用本地jdk!脚本
EN

Stack Overflow用户
提问于 2020-10-19 20:14:37
回答 1查看 395关注 0票数 1

我的脚本更改为与sdkman一起安装的jdk,而不是本地jdk。如何使用sdkman在脚本中更改为本地Oracle8 v261 jdk?

脚本

代码语言:javascript
复制
#!/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

以输出形式给出

代码语言:javascript
复制
[...]
               |     | 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的启发。

EN

回答 1

Stack Overflow用户

发布于 2021-09-28 10:05:55

您可以解析sdkman的输出以检索已安装sdks的列表,如下所示:

代码语言:javascript
复制
#!/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的示例

代码语言:javascript
复制
#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"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64427138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档