JDK路徑設置無效問題解決

来源:https://www.cnblogs.com/aahorse/archive/2020/07/13/13295519.html
-Advertisement-
Play Games

#JDK 配置環境無效的兩種情況 第 ① 種:輸入java -version,顯示:**'java' 不是內部或外部命令,也不是可運行的程式或批處理文件。**這個問題一般出現在電腦第一次配置環境的時候。 第 ② 種:輸入java -version,命令可以正常使用,但是顯示的版本與Path中配置的版 ...


JDK 配置環境無效的兩種情況

  • 第 ① 種:輸入java -version,顯示:'java' 不是內部或外部命令,也不是可運行的程式或批處理文件。這個問題一般出現在電腦第一次配置環境的時候。

  • 第 ② 種:輸入java -version,命令可以正常使用,但是顯示的版本與Path中配置的版本不對應。這個問題一般出現在電腦已經配置過 JDK,後面重新安裝新的 JDK 的時候。

第 ① 種情況的原因

對於第 ① 種情況,原因可能有:

  • Path的路徑寫入錯誤,檢查後寫入正確的即可。

  • 還有一種原因比較特殊,Windows7/8 和 Windows 10 對於Path寫法的差別。在 Windows 7/8,可以並且推薦使用%JAVA_HOME%的方式,比如,在Path中添加以下路徑:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin

但是,在 Windows 10,如果像上面這樣子配置 JDK 的路徑,系統是掃描不出來的,必須在Path中給出完整的路徑信息:

C:\Program Files\Java\jdk1.8.0_221\bin
C:\Program Files\Java\jdk1.8.0_221\jre\bin

第 ② 種情況的原因

參考博客:https://blog.csdn.net/joker_zsl/article/details/104446404


要解釋配置的 JDK 與實際運行的 JDK 不一致的問題,需要瞭解 JDK 的運行原理。在接收到指令後,JDK 的運行順序如下:

  • C:\Windows\System32\目錄下,尋找java.exe javaw.exe javaws.exe三個可運行文件,如果不存在,接著往下麵找 ↓
  • C:\Program Files (x86)\Oracle\Java\javapath\路徑找。如果仍然沒有找到,接著往下找 ↓
  • C:\ProgramData\Oracle\Java\javapath\路徑找。如果沒有找到,往下找 ↓
  • 在我們自己配置的路徑下麵尋找

在安裝低版本的 JDK 時(JDK 1.8 以下,未考證),一般不會出現前面 3 中情況。但是在安裝較高版本的 JDK 時,系統會在這些路徑自動生成運行文件,並且將路徑寫到Path中。所以,問題也出現在這裡,我們配置的路徑優先順序最低,造成配置失效。


如果只想運行自己配置的 JDK 路徑,可以通過下麵的步驟:

  • 刪除C:\Windows\System32\目錄下的 3 個文件java.exe javaw.exe javaws.exe

  • Path中,刪除C:\Program Files (x86)\Oracle\Java\javapathC:\ProgramData\Oracle\Java\javapath兩個路徑。

  • Path中,寫入自己想要的 JDK 路徑。(寫入時,要註意是否可以寫入%JAVA_HOME形式的路徑)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 函數式介面 函數式介面指的是:有且僅有一個抽象方法,但是可以有多個非抽象方法的介面(介面預設方法)。 1 @FunctionalInterface註解 該註解標記一個介面為函數式介面。 對於標註了這個註解的介面,編譯器會強制檢查該介面是否有且僅有一個抽象方法。否則會報錯。 即使不使用該註解,只要滿足 ...
  • Lambda表達式 閉包。允許將函數作為一個方法的參數傳遞進方法中。 本質上是一個匿名方法。 理解的時候,可以將Lambda表達式的內容轉化為一個方法去理解。 語法 (paramters) -> expression (parameters) -> { statements; } (int a) - ...
  • 一、 包裝類的使用 java提供了8種基本數據類型對應的包裝類,使得基本數據類型的變數具有類的特征 需要掌握的:基本數據類型、包裝類、String三者之間的相互轉換 基本數據類型 《 》包裝類:自動裝箱,自動拆箱 基本數據類型、包裝類 >String類型:調用String重載的valueOf(Xxx ...
  • Django Template層之Template概述 by:授客 QQ:1033553122 實踐環境 Python版本:python-3.4.0.amd64 下載地址:https://www.python.org/downloads/release/python-340/ Win7 64位 Dj ...
  • 一、java.lang.Object類 1.Object類是所有Java類的根父類 2.如果在類的聲明中未使用extends關鍵字指明其父類,則預設父類為java.lang.Object類 3.Object類中的功能(屬性、方法)就具有通用性。 屬性:無 方法:equals() / toString ...
  • 一、Django自帶的用戶認證-auth模塊 1.auth模塊簡介 網站開發過程中,我們需要設計實現網站的用戶系統。此時我們需要實現包括用戶註冊、用戶登錄、用戶認證、註銷、修改密碼等功能。Flask框架中我們需要手動的創建User模型,然後逐步實現驗證方法,但Django框架內置了強大的用戶認證系統 ...
  • 前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 from math import pi import matplotlib.pyplot as plt cat = ['Speed', 'Reliability', 'Com ...
  • 最簡單的方法是用vc6新建一個Win32 Application空工程,然後添加一個cpp文件,輸入 (註意添加對話框資源,並且在對話框上添加一個文本框) #include #include "resource.h" // DialogProc, 枚舉視窗對話框過程. int CALLBACK Di ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...