demo軟體園每日更新資源,請看到最後就能獲取你想要的: 1.多語言BNB鏈上智能合約區塊鏈 別人發的我沒啥用,還有前面發的和這個好像不一樣 自己需要的下載玩,這個本來就沒有後臺,別下載了找我說不完整。看著還是挺不錯的。 這玩意好像還有人改盜u 頁面效果: 1.數據挖掘與預測分析 數據挖掘與預測分析 ...
原理
通過腳步改變path環境變數來實現java多版本切換.這裡使用的是Win10.
一,刪除原有的java搜索路徑.
在安裝高版本的java時,會添加一個路徑到path環境變數中,如我的C:\Program Files\Common Files\Oracle\Java\javapath
,在該目錄下存有java.exe和javac.exe等.在用cmd執行命令時,cmd會在path變數包含的路徑中查找.你需要在環境變數中刪除該路徑.
二,設置JAVA_HOME和%JAVA_HOME%\bin
在環境變數中添加JAVA_HOME,值為jdk的安裝路徑,如下圖:
在path變數中添加一條%JAVA_HOME%\bin
.通過%變數名%的方式來調用變數,這裡有點像字元串拼接.在%JAVA_HOME%\bin下,你可以找到java.exe與javac.exe.在path中添加後,cmd也能找到.
三,安裝其他版本的java
這裡後來安裝了java8.它的安裝過程中不會自動改變環境變數,如果你安裝的是其他版本,可能需要留意這個問題,刪除新加的路徑以免產生干擾.
四,編寫.bat文件
文件名:setjava8.bat
,內容如下
@echo off
set JAVA_HOME=D:\Program Files\Java\jdk1.8.0_201
set Path=%JAVA_HOME%\bin;%Path%
echo -------path環境未使用C:\Program Files\Common Files\Oracle\Java\javapath---
echo -------setjava8.bat位於system32中---
echo -------JAVA_HOME=%JAVA_HOME%----
echo -------Java8 activated,僅當前視窗有效---
它的作用:改變JAVA_HOME的值,重新拼接一個路徑到path變數值,嚴格來講是覆蓋與原有的path.
ehco的作用是在命令行列印字元.
你可以把setjava8.bat文件放在path中包含的路徑下.當然, 得是改變前的path變數的路徑.我把他放在在\windows\system32
中,這是path變數中原有的路徑.這個目錄有特殊的許可權規則.
你甚至可以把他放在%JAVA_HOME%\bin下.這要求你的路徑設置是正確的,以便在改變%JAVA_HOME%\bin前可以找到.
如果你有需求,可以對文件內容進行修改,比如改改echo 後面的內容.
五,生效
如果你看懂了.bat文件里的內容,會發現核心就兩句:
set JAVA_HOME=D:\Program Files\Java\jdk1.8.0_201 set Path=%JAVA_HOME%\bin;%Path%
如果你只需要在命令行執行,可以縮成一句:
set Path=D:\Program Files\Java\jdk1.8.0_201\bin;%Path%
不過JAVA_HOME有特殊的意義.
它們的目的是在找到java16的java.exe等文件之前先在java8里找到了.這使得cmd在執行java -version
時,使用的是java8
如果你完成了,使用效果是這樣的:
六,遇到的各種問題
-
如果打開環境變數設置?
你可以在文件資源管理器的此電腦上右擊,點屬性,打開設置.在設置->高級系統設置中可以找.
或者使用搜索,搜env可以找到
-
修改的環境變數沒有生效?
第一,確保你已經保存
第二,確保cmd是新開的一個。因為可能有緩存的問題
第三,再次確認你沒有設置錯誤,畢竟錯了它也不報錯
-
生效的範圍?
僅當前視窗有效,新開的是沒有經過效果的。所以一開始的%JAVA_HOME%\bin需是正常的,這決定預設使用的java版本.
set命令可以在列印所有的環境變數,可以使用
set | findstr -i java
命令察看有關的環境變數還確認這件事。我覺得你沒有這麼閑,除非你第一次見或出錯了~ -
變數後面要不要加
\
?設置的時候你也疑惑要不要在%JAVA_HOME%後加
\
.要加的,因為路徑的後面沒有\
,拼接的時候就得加上。當年因為在.bat里末尾多加了一個\
,出現\\bin
的情況。 -
改了有啥用呢?
一般集成開發環境是支持多版本的.
這種通過腳本改環境變數的方法 能力有限.
冰蝎3需要java8的運行時環境,你可以這樣用:
java -jar ???
冰蝎4雖然可以在java16中也可以打開,似乎會莫名地卡.讓我回想起當前玩英雄聯盟時電腦總是突然死機的光景(#`-_ゝ-)
-
亂碼?其實我沒有啦
因為cmd的字元集是utf-8.在讀utf-8編碼的文件時會正常顯示。
cmd預設的字元集似乎是GBK.如果你有需要,可以到網上找找怎麼改.
亂碼問題不大,畢竟大多數字元集中沒人搶那52個英文字母的位置,程式還能運行.
-
其他問題?
沒了沒了,我想不到了.如果還有,你得去找他人的文章或視頻了.電腦玄學總是會碰到的, 實在不行,你可以重來一次(¬‿¬)