1. 程式人生 > >用cmd執行記事本寫的java檔案,以及jdk版本和執行版本不一致原因及其解決辦法

用cmd執行記事本寫的java檔案,以及jdk版本和執行版本不一致原因及其解決辦法

1.首先新建一個記事本,檔名改為Welcome.java拓展名也要改!(屬性裡面改為顯示拓展名,這樣才可以通過重新命名的方式改檔案個格式)

public class Welcome{
	public static void main(String[] args){
		System.out.println("江芳芳加油!!");
	}
}

2.開啟cmd的視窗,輸入以下命令:

C:\Users\Administrator>d://開啟d盤(java檔案的路徑為D:\myJava

D:\>cd myJava             //進入myJava資料夾

D:\myJava>javac Welcome.java    //進行編譯,這時候會生成Welcome.class資料夾

D:\myJava>java Welcome//執行java檔案

但是!!我居然遇到了這種錯誤~~很喪,別人都是一次就成功的,那那那,讓我們一起解決這個問題吧!

因為我們使用高版本的JDK編譯的Java class檔案試圖在較低版本的JVM上執行,所報的錯誤
Exception in thread "main" java.lang.UnsupportedClassVersionError: Welcome : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

2.jdk版本和執行版本不一致原因及其解決辦法

2.1錯誤原因——PATH路徑順序

輸入cmd命令 java -version顯示最新版本的java

輸入cmd命令 javac -version 顯示配置環境變數版本的java

D:\myJava>java -version//檢視jdk版本
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

D:\myJava>javac -version
javac 1.8.0_112

也就是說由於jdk版本和執行環境的版本不一致,會導致class檔案不能執行

可是你的配置環境都是按教程來的,沒有什麼問題。

我花了很長的時間,翻了無數的資料最終得出原因:

可能是因為機器有兩個版本,window\system\下的javac.exe版本過低,
根據環境變數設定的Path,由於%JAVA_HOME%\bin;設定在後面,
而%SystemRoot%\system32;設定在前面,所以先找到的是system目錄下的低版本,
改動後將%JAVA_HOME%\bin;提到最前面即可。

2.2解決辦法——將%JAVA_HOME%放在Path的頭部

我們再通過cmd語句來檢視兩個版本,這時會驚奇的發現,居然一樣了!!!哈哈哈哈哈開心到炸裂~~~

D:\myJava>java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

D:\myJava>javac -version
javac 1.8.0_112

這時候呢再次執行我們的java檔案

C:\Users\Administrator>d:

D:\>cd myJava

D:\myJava>java Welcome
江芳芳加油!!

完結!!!繼續走!我們一起加油!!