最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

windows系統(tǒng)使用mvn命令打包并指定jdk路徑方式

 更新時間:2023年04月08日 13:53:28   作者:珂珂胖  
這篇文章主要介紹了windows系統(tǒng)使用mvn命令打包并指定jdk路徑方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

使用mvn命令打包并指定jdk路徑

使用背景:我本機安裝配置的是jdk17,從網(wǎng)上拉取下來的項目使用的是jdk1.8,直接運行或者打包的話會報錯。

IDEA

idea中可以切換jdk,setting -> project structure -> project中 配置好新下載安裝好的jdk1.8的安裝路徑即可。

不打開IDEA,直接使用命令進行打包

新建一個txt文件,編寫以下內容

set JAVA_HOME=xxx 僅僅是設置臨時環(huán)境變量,不修改實際的。

set JAVA_HOME=C:\Users\kekePang\.jdks\corretto-1.8.0_322
mvn clean package

保存文件,重命名為 package.bat

最后將該執(zhí)行文件拷貝到要打包的maven項目根目錄下,雙擊運行bat文件即可實現(xiàn)在jdk1.8環(huán)境下的正常打包。

我們Ctrl+R打開命令窗口,輸入java -version,當前java版本還是17.

MVN打包報錯:在類路徑或引導類路徑中找不到程序包 java.lang

現(xiàn)象

同一個Springboot項目在windows下mvn打包正常,在linux下打包就失敗了。

打包命令如下 :

mvn clean package -Dmaven.test.skip=true

然后Linux中的其他項目打包也正常,就是這個項目不正常。

報錯日志

key/.m2/repository/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar,/home/itkey/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar,.]
致命錯誤: 在類路徑或引導類路徑中找不到程序包 java.lang
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] An unknown compilation problem occurred
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for wsdm 1.0.0:
[INFO] 
[INFO] wsdm ............................................... SUCCESS [  0.201 s]
[INFO] wsdm-common ........................................ FAILURE [  2.113 s]
[INFO] wsdm-liantong ...................................... SKIPPED
[INFO] wsdm-system ........................................ SKIPPED
[INFO] wsdm-framework ..................................... SKIPPED
[INFO] wsdm-generator ..................................... SKIPPED
[INFO] wsdm-rongcloud ..................................... SKIPPED
[INFO] wsdm-admin ......................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.647 s
[INFO] Finished at: 2022-04-21T14:58:23+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project wsdm-common: Compilation failure
[ERROR] An unknown compilation problem occurred
[ERROR] 
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :wsdm-common

原因分析

關鍵信息致命錯誤: 在類路徑或引導類路徑中找不到程序包 java.lang人這里就可以看出應該是編譯的時候環(huán)境變量有問題。

我就開始懷疑是不是JDK配置的問題。

檢查了一下JDK1.8配置正常,我還專門把多余的JDK11刪除以防混淆。

結果還是沒有作用。

因為其他項目編譯打包是正常的,只是這個項目不正常。我在考慮會不會MVN的某個配置文件不兼容LINUX導致的?

于是我就對比了一下pom.xml文件的區(qū)別發(fā)現(xiàn)如下一段

<configuration>
? ? <source>${java.version}</source>
? ? ?<target>${java.version}</target>
? ? ?<encoding>${project.build.sourceEncoding}</encoding>
? ? ?<compilerArguments>
? ? ? ? ?<verbose/>
? ? ? ? ?<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
? ? ?</compilerArguments>
?</configuration>

在編譯正常的項目中沒有這段配置<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>

最終證明真的是這么配置導致的問題的發(fā)生。

解決辦法

配置問題:pom.xml中以下標簽中的標簽中間配置的jdk的分隔符是不是改錯了,

  • window下是英文符號;
  • linux下是英文符號:

windows

<compilerArguments>
<verbose />
<bootclasspath>${java.home}\jre\lib\rt.jar;${java.home}\jre\lib\jce.jar</bootclasspath>
</compilerArguments>

linux

<compilerArguments>
<verbose />
<bootclasspath>${java.home}\jre\lib\rt.jar:${java.home}\jre\lib\jce.jar</bootclasspath>
</compilerArguments>

修改完成以后,linux下打包也就正常啦。

這樣處理有一個非常明顯的缺點,在不同的環(huán)境下打包,打包前要編輯一下這個文件太麻煩了。這樣版本管理也難。那么有沒有一勞永逸的辦法,使一套配置同時支持兩個平臺呢?

最優(yōu)解

<bootclasspath>${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar</bootclasspath>

我把;替換成變量${path.separator}了。

${path.separator}在windows下就是英文符號;

${path.separator}在linux下就是英文符號:

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 使用Jackson進行JSON生成與解析的新手指南

    使用Jackson進行JSON生成與解析的新手指南

    這篇文章主要為大家詳細介紹了如何使用Jackson進行JSON生成與解析處理,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-04-04
  • Maven dependency中的scope案例講解

    Maven dependency中的scope案例講解

    Maven的一個哲學是慣例優(yōu)于配置(Convention Over Configuration), Maven默認的依賴配置項中,scope的默認值是compile,本文給大家介紹Maven dependency中的scope案例講解,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • java簡單實現(xiàn)斗地主發(fā)牌功能

    java簡單實現(xiàn)斗地主發(fā)牌功能

    這篇文章主要為大家詳細介紹了java簡單實現(xiàn)斗地主發(fā)牌功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Java annotation元注解原理實例解析

    Java annotation元注解原理實例解析

    這篇文章主要介紹了Java annotation元注解原理實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 通過實例深入了解java序列化

    通過實例深入了解java序列化

    這篇文章主要介紹了通過實例深入了解java序列化,
    2019-06-06
  • Java編程實現(xiàn)獲取mp3時長及播放mp3文件的方法

    Java編程實現(xiàn)獲取mp3時長及播放mp3文件的方法

    這篇文章主要介紹了Java編程實現(xiàn)獲取mp3時長及播放mp3文件的方法,涉及java基于jaudiotagger與jl包對MP3音頻文件屬性操作及音頻播放相關操作技巧,并提供了相關jar包的本站下載,需要的朋友可以參考下
    2018-02-02
  • 詳解Spring系列之@ComponentScan批量注冊bean

    詳解Spring系列之@ComponentScan批量注冊bean

    本文介紹各種@ComponentScan批量掃描注冊bean的基本使用以及進階用法和@Componet及其衍生注解使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-02-02
  • Java中兩種拋出異常的方式示例詳解

    Java中兩種拋出異常的方式示例詳解

    在Java中有兩種拋出異常的方式,一種是throw,直接拋出異常,另一種是throws,間接拋出異常,本文給大家詳細說明java中兩種拋出異常的方式,感興趣的朋友一起看看吧
    2023-08-08
  • java gui詳解貪吃蛇小游戲實現(xiàn)流程

    java gui詳解貪吃蛇小游戲實現(xiàn)流程

    剛開始學JAVA GUI,就練手寫了一個小時候經(jīng)常在諾基亞上玩的一個小游戲__貪吃蛇.做的比較簡單,但還是可以玩的.感興趣的朋友快來看看吧
    2021-11-11
  • Springboot如何設置過濾器及重復讀取request里的body

    Springboot如何設置過濾器及重復讀取request里的body

    這篇文章主要介紹了Springboot如何設置過濾器及重復讀取request里的body,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評論

阿图什市| 平果县| 德兴市| 蛟河市| 绵竹市| 龙口市| 阿勒泰市| 宣城市| 吉林市| 吉隆县| 邻水| 班戈县| 秀山| 巩义市| 遵化市| 宜黄县| 汉阴县| 卓资县| 磴口县| 新竹市| 海原县| 浪卡子县| 如东县| 肥乡县| 特克斯县| 台湾省| 宜宾市| 新泰市| 无为县| 洛浦县| 常德市| 根河市| 涪陵区| 报价| 防城港市| 准格尔旗| 冕宁县| 抚远县| 六枝特区| 鹤壁市| 汉阴县|