本文由做者鄒珍珍受權網易雲社區發佈。java
1、測試背景:apache
項目對外提供JAR包,須要測試該JAR包對不一樣JDK版本(1.6至1.9版本)的兼容性。下面主要介紹在兼容性測試中,JDK多版本共存時如何配置環境變量,以及如何在IDE中切換JDK版本。maven
首先說明,在對JAR包進行JDK版本兼容性測試的時候,配置環境變量是非必須操做,由於只要機子上安裝了多個JDK版本,無論是Eclipse仍是IDEA均可以手動配置項目所使用的JDK版本。可是,因爲大部分JAVA程序都會默認去環境變量中取JAVA_HOME這個變量,好比Eclipse,若不手動去配置會默認使用環境變量中配置的JDK版本,故仍是須要知道如何在一臺機子上管理多個JDK版本,省得安裝了多個JDK版本後形成一些沒必要要的麻煩。測試
2、JDK多版本共存時環境配置spa
測試須要,本人分別下載和安裝了JDK1.9,JDK1.8,JDK1.7和JDK1.6四個版本。
JAVA6_HOME:存放JDK1.6的安裝路徑;操作系統
JAVA7_HOME:存放JDK1.7的安裝路徑;插件
JAVA8_HOME:存放JDK1.8的安裝路徑;3d
JAVA9_HOME:存放JDK1.9的安裝路徑。code
JAVA_HOME:若需JDK1.6版本變量值設爲%JAVA6_HOME%,若需1.9版本變量值設爲%JAVA9_HOME%,便於切換。orm
因爲JDK安裝程序會把java.exe,javaw.exe,javareg.exe這三個可執行文件拷貝到%SystemRoot%/system32目錄下,
其中JDK1.8版本還會將以上三個可執行文件拷貝到C:ProgramDataOracleJavajavapath目錄下,
且以上路徑被操做系統設置爲最高優先權的PATH搜索路徑,所以會影響到JDK版本切換。
故須要分別刪除如下目錄下的三個可執行文件java.exe,javaw.exe,javareg.exe:
C:WindowsSystem32
C:ProgramDataOracleJavajavapath
更換JAVA_HOME內不一樣的變量值,打開cmd,輸入java -version,查看版本。
3、IDEA配置多JDK版本
增長JDK版本: File --> Project Structure --> Platform Settings --> SDKs --> +
項目更換JDK版本:File --> Project Structure --> Project Settings --> Project
4、修改Maven項目的pom.xml文件
最後還須要注意,使用的JDK版本更換後,須要在Maven的pom.xml文件中修改compiler插件-source參數,改成指定的JDK版本,不然會報錯:Error:java: 無效的源版本: 8
報錯緣由是,JDK的版本與項目的要求不一致,源碼編寫使用的是JAVA9語法,可是pom.xml文件中卻指定源碼經過JDK1.8(-source 1.8)來編譯。
<plugin>
<groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <!-- 源代碼使用的開發版本 --> <target>1.8</target> <!-- 須要生成的目標class文件的編譯版本 --> <!-- 這下面的是可選項 --> <meminitial>128m</meminitial> <maxmem>512m</maxmem> <fork>true</fork> <!-- fork is enable,用於明確表示編譯版本配置的可用 --> <compilerVersion>1.8</compilerVersion> <!-- 這個選項用來傳遞編譯器自身不包含可是卻支持的參數選項 --> <compilerArgument>-verbose -bootclasspath ${java.home}\lib\rt.jar</compilerArgument> </configuration>
</plugin
更多網易技術、產品、運營經驗分享請訪問網易雲社區。
文章來源: 網易雲社區