java不能正常執行,java能編譯 不能執行怎麼解決

本文目錄一覽:

為什麼我的Java程序不能運行呢?

因為你沒有安裝jdk或者沒有配置java的環境變量,

如果是前者,你要下載安裝jdk。

如果已經安裝了,那麼就說明你沒有在環境變量裏面配置。

方法如下,右鍵我的電腦–屬性–高級系統設置,

在彈出的窗口中選擇–高級標籤頁,然後點擊下方的環境變量,

在系統變量中查找path變量,

雙擊它,在裏面添加jdk的bin目錄的路徑

例如D:\Program Files\jdk_1.6.0_10\bin;

注意要跟其他的路徑用英文的分號隔開;

Java運行不了為什麼?

編譯通過了,執行的時候在類加載的時候報ClassFormatError的運行時錯誤,提示要讓你查看安裝的是否正確。可以在程序中卸載所有的jdk,然後再次重新安裝。

java 程序運行錯誤怎麼辦?

看是發生了什麼錯誤,大多數錯誤都可以通過改寫原編碼來解決。

程序的錯誤可以抽象分為三類:語法錯誤、運行錯誤和邏輯錯誤。

1、語法錯誤

是指由於編程中輸入不符合語法規則而產生的。程序編譯就通不過,程序不能運行起來。此類錯誤最簡單,調試起來比較容易

例如:表達式不完整、缺少必要的標點符號、關鍵字輸入錯誤、數據類型不匹配、循環語句或選擇語句的關鍵字不匹配等。通常,編譯器對程序進行編譯的過程中,會把檢測到的語法錯誤以提示的方式列舉出來,又稱為編譯錯誤。

語法錯誤的調試,則可以由集成開發環境提供的調試功能來實現,在程序進行編譯時,編譯器會對程序中的語法錯誤進行診斷。

編譯診斷的語法錯誤分為3中:致命錯誤、錯誤和警告。

(1)致命錯誤:這個錯誤大多是編譯程序內部發生的錯誤,發生這類錯誤時,編譯被迫中止,只能重新啟動編譯程序,但是這類錯誤很少發生,為了安全,編譯前最好還是先保存程序。

(2)錯誤:這個錯誤通常是在編譯時,語法不當所引起的。例如:括號不匹配,變量未聲明等。產生這類錯誤時,編譯程序會出現報錯提示,我們根據提示對源程序進行修改即可。這類錯誤是出現最多的。

(3)警告:是指被編譯程序懷疑有錯,但是不確定,有時可強行通過。例如:沒有加void聲明的主函數沒有返回值,double數據被轉換為float類型等。這些警告中有些會導致錯誤,有些可以通過。

常規解決方法:此類錯誤一般程序編譯系統會自動提示相應的錯誤地點和錯誤原因,比如哪一行代碼少了個括號等諸如此類的提示,常見的錯誤,看懂直接改正即可,如果是看不懂原因,可以將錯誤提示信息輸入搜索引擎查找一下,一般都能找到具體的解決辦法。或者有些編程平台會本身提供一個本地或者在線的信息庫,提供詳細的錯誤原因和解決辦法,比如微軟的.NET開發平台。

2、運行錯誤

指程序在運行過程中出現的錯誤。程序通過語法錯誤檢測,但是運行的時候出現錯誤,導致程序被迫終止,此類錯誤有特定的發生條件,因此能夠準確的定位錯誤代碼段,因而調試也比較方便。

例如:除法運算時除數為0 、數組下標越界、文件打不開、磁盤空間不夠、數據庫連接錯誤等。

此類錯誤發生時,編譯平台一般也會提示相應的信息,對於常規的錯誤會有比較精確地提示,但有時提示的錯誤原因會比較模糊,但因為此類錯誤一般在程序運行時,只在特定的條件下才會發生,所以根據錯誤發生的條件,能夠大致判斷程序出錯的代碼段,結合錯誤的原因,也能比較方便的調試出錯誤。

3、邏輯錯誤

程序運行後,沒有得到設計者預期的結果,這就說明程序存在邏輯錯誤。這種錯誤在語法上是有效的,但是在邏輯上是錯誤的。

程序運行了,也沒有出錯,但是執行出來的結果不是用戶想要的,分為兩種情況:

A、       能夠看出錯誤:比如查詢工資大於5000的人員名單,卻出現了3000的;

B、       看不出錯誤,直到因緣際會發現程序肯定出錯了,後果很嚴重:比如進行一個符合大型運算,把某個常數輸入錯了,最後的結果人工無法判斷對錯,又以該結果進行其它的運算等等,最後發現錯了誤差過大,就得從頭排查錯誤。

JAVA無法運行怎麼辦

你需要下載一個JDK(目前最新版本為java8,直接百度就可以下載)

然後配置環境變量:

JDK安裝設置環境變量

一、前言

JDK(Java Development Kit )是一切java應用程序的基礎,可以說,所有的java應用程序是構建在這個之上的。它是一組API,也可以說是一些java Class。目前已經正式發佈的最新版本是JDK1.3。考慮到我對linux不熟悉,而且大多數都是在MS系統下,所以,在這裡我用的是win2000。

二、下載,安裝

下載地址為JAVA官方站點:java.sun.com,國內也到處都是。

Windows下,直接運行.exe文件,安裝到一個目錄,我這裡用F:\jdk13作為例子。

三、配置

桌面上選擇「我的電腦」(右鍵)

高級

環境變量

在「系統變量」—「新建」

在變量名中輸入:CLASSPATH,變量值中輸入:

F:\JDK13\LIB\dt.JAR;F:\JDK13\LIB\TOOLS.JAR;F:\JDK13\BIN;然後確定;

好了,配置完了,要重新啟動計算機後,環境變量才能有效的。

四、測試

(1)用文本編輯器寫一個簡單的java程序:

public class HelloWorld {

public static void main(String args[]) {

System.out.println(“Hello World!”);

}

}

這個例子就是著名的「Hello World」,它的功能就是顯示「Hello World」。

注意:該文件名稱必須為「HelloWorld.java」,大小寫也區分。細心的朋友會注意到就是和public class後的名字一樣的。

(2)編譯:在dos命令提示符下執行:(注意大小寫)

javac HelloWorld.java

如果正常的話,將生成HelloWorld.class文件。

(3)運行:在dos命令提示符下執行:(注意大小寫)

java HelloWorld

這裡有一個java初學者很有可能遇到的問題(不怕笑話,我也是)就是輸入:

java HelloWorld.class

多了後面的.class,一定要注意,否則會出現下面的錯誤:

Exception in thread “main” java.lang.NoClassDefFoundError:HelloWorld/class

(本人猜想,是不是java翻譯「.」的時候換成了「/」,或者是其他的本人不知道的原因)

好了,運行java HelloWorld應該會出現偉大的「Hello World」了。

到這一步,你已經成功配置好了JDK,可以開始漫長而痛苦(對於象我一樣的,以前不懂java的朋友來說,可以用「痛苦」來形容,不理解的概念,不熟悉的java api…,不過,不要急,我將和大家一起慢慢入門,慢慢提高… …)的Java過程了。

java編程沒報錯,但運行不了,怎麼辦?

String name=sc.next();//這是讓你在操作台輸入一個字符串,回車後,輸出name+你輸入的字符串

畫圈處是控制台

java程序不能執行?

Java程序的運行過程(執行流程)分析

1、編寫:是指在 Java 開發環境中進行程序代碼的輸入,最終形成後綴名為 .java 的 Java 源文件。

2、編譯:是指使用 Java 編譯器對源文件進行錯誤排査的過程,編譯後將生成後綴名為 .class 的位元組碼文件,不像C語言那樣生成可執行文件。

3、運行:是指使用 Java 解釋器將位元組碼文件翻譯成機器代碼,執行並顯示結果。

位元組碼文件是一種和任何具體機器環境及操作系統環境無關的中間代碼。它是一種二進制文件,是 Java 源文件由 Java 編譯器編譯後生成的目標代碼文件。編程人員和計算機都無法直接讀懂位元組碼文件,它必須由專用的 Java 解釋器來解釋執行,因此 Java 是一種在編譯基礎上進行解釋運行的語言。

Java 解釋器負責將位元組碼文件翻譯成具體硬件環境和操作系統平台下的機器代碼,以便執行。因此 Java 程序不能直接運行在現有的操作系統平台上,它必須運行在被稱為 Java 虛擬機的軟件平台之上。

Java 虛擬機(JVM)是運行 Java 程序的軟件環境,Java 解釋器是 Java 虛擬機的一部分。在運行 Java 程序時,首先會啟動 JVM,然後由它來負責解釋執行 Java 的位元組碼程序,並且 Java 位元組碼程序只能運行於 JVM 之上。這樣利用 JVM 就可以把 Java 位元組碼程序和具體的硬件平台以及操作系統環境分隔開來,只要在不同的計算機上安裝了針對特定平台的 JVM,Java 程序就可以運行,而不用考慮當前具體的硬件平台及操作系統環境,也不用考慮位元組碼文件是在何種平台上生成的。

JVM 把這種不同軟、硬件平台的具體差別隱藏起來,從而實現了真正的二進制代碼級的跨平台移植。JVM 是 Java 平台架構的基礎,Java 的跨平台特性正是通過在 JVM 中運行 Java 程序實現的。Java 的這種運行機制可以通過下圖來說明。

Java 語言這種「一次編寫,到處運行」的方式,有效地解決了目前大多數高級程序設計語言需要針對不同系統來編譯產生不同機器代碼的問題,即硬件環境和操作平台的異構問題,大大降低了程序開發、維護和管理的開銷。

提示:Java 程序通過 JVM 可以實現跨平台特性,但 JVM 是不跨平台的。也就是說,不同操作系統之上的 JVM 是不同的,Windows 平台之上的 JVM 不能用在 Linux 平台,反之亦然。

原創文章,作者:GSWD,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/137213.html

相關推薦

  • 金額選擇性序列化

    本文將從多個方面對金額選擇性序列化進行詳細闡述,包括其定義、使用場景、實現方法等。 一、定義 金額選擇性序列化指根據傳入的金額值,選擇是否進行序列化,以達到減少數據傳輸的目的。在實…

    編程 2025-04-29
  • 金額選擇性序列化

    本文將從多個方面對金額選擇性序列化進行詳細闡述,包括其定義、使用場景、實現方法等。 一、定義 金額選擇性序列化指根據傳入的金額值,選擇是否進行序列化,以達到減少數據傳輸的目的。在實…

    編程 2025-04-29
  • 金額選擇性序列化

    本文將從多個方面對金額選擇性序列化進行詳細闡述,包括其定義、使用場景、實現方法等。 一、定義 金額選擇性序列化指根據傳入的金額值,選擇是否進行序列化,以達到減少數據傳輸的目的。在實…

    編程 2025-04-29
  • 金額選擇性序列化

    本文將從多個方面對金額選擇性序列化進行詳細闡述,包括其定義、使用場景、實現方法等。 一、定義 金額選擇性序列化指根據傳入的金額值,選擇是否進行序列化,以達到減少數據傳輸的目的。在實…

    編程 2025-04-29
  • 金額選擇性序列化

    本文將從多個方面對金額選擇性序列化進行詳細闡述,包括其定義、使用場景、實現方法等。 一、定義 金額選擇性序列化指根據傳入的金額值,選擇是否進行序列化,以達到減少數據傳輸的目的。在實…

    編程 2025-04-29
  • 金額選擇性序列化

    本文將從多個方面對金額選擇性序列化進行詳細闡述,包括其定義、使用場景、實現方法等。 一、定義 金額選擇性序列化指根據傳入的金額值,選擇是否進行序列化,以達到減少數據傳輸的目的。在實…

    編程 2025-04-29
  • 金額選擇性序列化

    本文將從多個方面對金額選擇性序列化進行詳細闡述,包括其定義、使用場景、實現方法等。 一、定義 金額選擇性序列化指根據傳入的金額值,選擇是否進行序列化,以達到減少數據傳輸的目的。在實…

    編程 2025-04-29
  • 金額選擇性序列化

    本文將從多個方面對金額選擇性序列化進行詳細闡述,包括其定義、使用場景、實現方法等。 一、定義 金額選擇性序列化指根據傳入的金額值,選擇是否進行序列化,以達到減少數據傳輸的目的。在實…

    編程 2025-04-29
  • 金額選擇性序列化

    本文將從多個方面對金額選擇性序列化進行詳細闡述,包括其定義、使用場景、實現方法等。 一、定義 金額選擇性序列化指根據傳入的金額值,選擇是否進行序列化,以達到減少數據傳輸的目的。在實…

    編程 2025-04-29
  • 金額選擇性序列化

    本文將從多個方面對金額選擇性序列化進行詳細闡述,包括其定義、使用場景、實現方法等。 一、定義 金額選擇性序列化指根據傳入的金額值,選擇是否進行序列化,以達到減少數據傳輸的目的。在實…

    編程 2025-04-29