/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/lib/currency.data (No such file or direc)

问题

使用maven指定编译版本为jdk11编译,本地默认环境变量是jdk8。
通过参数Dmaven.compiler.source=11 -Dmaven.compiler.target=11 或者
Djava.home=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home

 ./mvnw -Dcheckstyle.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true -Dmaven.compiler.source=11 -Dmaven.compiler.target=11  -Djava.home=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home -Djacoco.skip=true -DskipITs -DskipTests clean install -T1C
Exception in thread "main" java.lang.InternalError: java.io.FileNotFoundException: /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/lib/currency.data (No such file or directory)
        at java.util.Currency$1.run(Currency.java:247)
        at java.util.Currency$1.run(Currency.java:214)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.util.Currency.<clinit>(Currency.java:214)
        at java.text.DecimalFormatSymbols.initialize(DecimalFormatSymbols.java:638)
        at java.text.DecimalFormatSymbols.<init>(DecimalFormatSymbols.java:113)
        at sun.util.locale.provider.DecimalFormatSymbolsProviderImpl.getInstance(DecimalFormatSymbolsProviderImpl.java:85)
        at java.text.DecimalFormatSymbols.getInstance(DecimalFormatSymbols.java:180)
        at java.util.Formatter.getZero(Formatter.java:2283)
        at java.util.Formatter.<init>(Formatter.java:1892)
        at java.util.Formatter.<init>(Formatter.java:1914)
        at java.lang.String.format(String.java:2940)
        at org.apache.maven.wrapper.PathAssembler.rootDirName(PathAssembler.java:68)
        at org.apache.maven.wrapper.PathAssembler.getDistribution(PathAssembler.java:57)
        at org.apache.maven.wrapper.Installer.createDist(Installer.java:76)
        at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:155)
        at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:72)
Caused by: java.io.FileNotFoundException: /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/lib/currency.data (No such file or directory)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(FileInputStream.java:195)
        at java.io.FileInputStream.<init>(FileInputStream.java:138)
        at java.io.FileInputStream.<init>(FileInputStream.java:93)
        at java.util.Currency$1.run(Currency.java:221)
        ... 16 more

解决思路

查阅相关资料,说可能是

可能出现问题jdk损坏

这个错误通常表示在执行 Maven 命令时,Java 运行时无法在 /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/lib/ 目录下找到 currency.data 文件。这个问题可能是由于 JDK 11 文件损坏或缺失导致的。

根据您提供的命令,-Djava.home 属性的值已经设置为 JDK 的根目录。因此,建议检查一下 /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/lib/ 目录是否存在 currency.data 文件。如果该目录中确实不存在 currency.data 文件,可以尝试手动下载该文件,并将其复制到该目录中。您可以从 OpenJDK 官网下载 currency.data 文件,找到与您的 JDK 11 版本对应的文件,然后将其复制到 /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/lib/ 目录中。

如果您已经确定 /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/lib/ 目录中存在 currency.data 文件,但仍然出现了上述错误,请尝试重新安装 JDK 11,并确保所有文件都被正确安装。可以从 Oracle 官网或者 OpenJDK 官网下载适合您操作系统的 JDK 11 安装包,并按照安装向导的提示进行安装。安装完成后,再次运行 Maven 命令,看是否仍然出现同样的错误。

排除jdk损坏的原因

环境变量加入jdk11和jdk8的环境变量

cat .bash_profile
# JDK8
export JAVA_8_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home'

# JDK11
export JAVA_11_HOME='/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home'

export JAVA_HOME=$JAVA_11_HOME
# export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home^M
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"

可以正常运行
在这里插入图片描述

改变本地jdk默认环境变量是jdk11

本地使用jdk11的环境是可以
在这里插入图片描述

在这里插入图片描述

于是使用jdk tool的方式,先设置环境变量是jdk11

先设置jenkins

在这里插入图片描述
可参考:

https://www.jianshu.com/p/30c9034d83d3

stages {
    stage('install') {
        tools {
            jdk 'jdk-11'
        }
        steps {
            script {
                sh './mvnw -Dcheckstyle.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true -Djacoco.skip=true -DskipITs -DskipTests clean install -T1C'
            }
        }
    }
   }

然后就可以愉快的打镜像了
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值