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
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...