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

文章目录

  • 问题
  • 解决思路
    • 可能出现问题jdk损坏
      • 排除jdk损坏的原因
    • 改变本地jdk默认环境变量是jdk11
    • 于是使用jdk tool的方式,先设置环境变量是jdk11
      • 先设置jenkins

问题

使用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"

可以正常运行
/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/lib/currency.data (No such file or direc)_第1张图片

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

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

/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/lib/currency.data (No such file or direc)_第2张图片

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

先设置jenkins

/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/lib/currency.data (No such file or direc)_第3张图片
可参考:

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'
            }
        }
    }
   }

然后就可以愉快的打镜像了
/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/lib/currency.data (No such file or direc)_第4张图片

你可能感兴趣的:(线上异常处理分析,java,python,chrome)