㈠ java編譯中出現了Exception in thread 「main" java.lang.UnsupportedClassVersionError
這個問題是由較高版本的JDK編譯的java class文件試圖在較低版本的JVM上運行產生的錯誤。
1、解決措施就是保證jvm(java命令)和jdk(javac命令)版本一致。如果是linux版本,則在命令行中分別輸入java -version和javac -version命令來查看版本是否一致。這里假設都是1.7版本。
2、如果都一致,但還是解決不了問題,那麼你肯定不是直接在命令行中用javac來編譯的,而是用類似於eclipse、netbeans這樣的編譯器來編譯的。因為很多編譯器都自帶javac,而不是採用操作系統中的編譯器。如果你的編譯器是eclipse的話,那麼需要在項目的屬性里設置jdk版本,方法是右擊項目-->properties-->java compiler --> Enable project specific settings -->將compiler compliance level設置為1.7,也就是與jvm一致的版本(在命令行中java -version所顯示的版本)。
3、綜上,如果你是用編譯器來編譯的話,請首先確保編譯器自帶的jdk版本是否和操作系統中的java版本一致。一般是jdk和jvm版本不一致導致,可以在cmd命令下輸入java -version和javac -version看版本是否一致,不一致的話需要改JAVA_HOME保證一致。
拓展資料:
Java 異常處理
異常是程序中的一些錯誤,但並不是所有的錯誤都是異常,並且錯誤有時候是可以避免的。異常發生的原因有很多,通常包含以下幾大類:
1、用戶輸入了非法數據。
2、要打開的文件不存在。
3、網路通信時連接中斷,或者JVM內存溢出。
這些異常有的是因為用戶錯誤引起,有的是程序錯誤引起的,還有其它一些是因為物理錯誤引起的。要理解Java異常處理是如何工作的,你需要掌握以下三種類型的異常:
1、檢查性異常:最具代表的檢查性異常是用戶錯誤或問題引起的異常,這是程序員無法預見的。例如要打開一個不存在文件時,一個異常就發生了,這些異常在編譯時不能被簡單地忽略。
2、運行時異常:運行時異常是可能被程序員避免的異常。與檢查性異常相反,運行時異常可以在編譯時被忽略。
3、錯誤:錯誤不是異常,而是脫離程序員控制的問題。錯誤在代碼中通常被忽略。例如,當棧溢出時,一個錯誤就發生了,它們在編譯也檢查不到的。
㈡ Javac 編譯java腳本出錯的問題
類型不一致無法進行比較;
使用正規編輯器,eclipse進行編譯,解析,防止沒必要的浪費時間
㈢ java語言中什麼叫做編譯錯誤
就是你用javac命令將源代碼(.java)文件翻譯成位元組碼(.class)文件時產生的錯誤。
比如,變數名不符合規定,變數沒定義,關鍵字拼寫錯誤等等。。。
java的編譯器(javac)會根據java語法規定做一些檢查,不符合規定的就不通過編譯。
編譯錯誤,是相對於運行時錯誤而言的。
運行時錯誤,是你用java命令運行時會出現的錯誤,一般會拋出異常。
㈣ 編譯JAVA程序成功但運行javac命令時出現錯誤
因該是你的寫法有問題。具體流程如下
1、 新建txt文檔並將後綴改成.java
說明:
此處強調說明兩個命令 javac 和java
javac 是編譯命令既 將java文件編譯成可執行的class文件
而java 是執行命令 既執行class文件
其中 javac 後邊必須寫java文件的全名 例如 Test.java
java 後邊則是Test 沒有後綴這一點需要注意
㈤ 我寫了個java代碼,編譯沒有問題,但是執行的時候就出了一堆亂七八糟的代碼,這是怎麼回事
原因是你編譯使用的javac,把代碼編譯成版本61的class,而你的運行環境java,是一個老版本,能執行的上限是52版本。
解決方法有兩個:
1,安裝和JDK相同版本的Java運行時(JRE),並正確設置PATH變數。驗證方法是:
在黑窗口裡分別輸入java -version和javac -version,兩個版本要一致,或者java的版本更高。
相關命令截圖如下:
㈥ WIN10系統,控制台編譯JAVA報錯
可能原因一:java類中沒有main方法。必須有下面的main方法執行入口才可以:
public static void main(String[] args) {
}
可能原因二:說明當前的路徑不是java文件存放路徑。解決辦法:
第一步:在cmd上通過cd進入相應java類路徑。如(cd D:Remiticardpay-boss);
第二步:直接輸入盤符即可完成路徑切換(如 D:)。
㈦ java編譯錯誤
一般反編譯出來的goto有以下幾種情況:
while或do while循環
exception處理
switch case
java->class的過程中,編譯器會進行優化,將其處理為goto :label的形式。
解決這種問題,需要先試著理解一下它的邏輯,再將label下的代碼調整到正確位置,補上while/try catch/switch case。