java程序運(yùn)行不了的主要原因有以下幾點(diǎn):
十余年的津市網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整津市建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“津市網(wǎng)站設(shè)計(jì)”,“津市網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
環(huán)境變量沒(méi)有配好。需要下載jdk配置環(huán)境變量(略)
編譯失?。赫Z(yǔ)法錯(cuò)誤。
語(yǔ)法正確,但是寫(xiě)入了錯(cuò)誤的代碼,導(dǎo)致出現(xiàn)不理想的運(yùn)行結(jié)果,以為是運(yùn)行不了。
針對(duì)以上幾點(diǎn):
檢查jdk是否成功安裝,環(huán)境變量是否配置成功(略)
填寫(xiě)簡(jiǎn)單的測(cè)試代碼如 輸出helloworld 看能不能執(zhí)行
檢查自己寫(xiě)的代碼,利用調(diào)試、斷點(diǎn)等測(cè)出bug
String name=sc.next();//這是讓你在操作臺(tái)輸入一個(gè)字符串,回車(chē)后,輸出name+你輸入的字符串
畫(huà)圈處是控制臺(tái)
Java程序的運(yùn)行過(guò)程(執(zhí)行流程)分析
1、編寫(xiě):是指在 Java 開(kāi)發(fā)環(huán)境中進(jìn)行程序代碼的輸入,最終形成后綴名為 .java 的 Java 源文件。
2、編譯:是指使用 Java 編譯器對(duì)源文件進(jìn)行錯(cuò)誤排査的過(guò)程,編譯后將生成后綴名為 .class 的字節(jié)碼文件,不像C語(yǔ)言那樣生成可執(zhí)行文件。
3、運(yùn)行:是指使用 Java 解釋器將字節(jié)碼文件翻譯成機(jī)器代碼,執(zhí)行并顯示結(jié)果。
字節(jié)碼文件是一種和任何具體機(jī)器環(huán)境及操作系統(tǒng)環(huán)境無(wú)關(guān)的中間代碼。它是一種二進(jìn)制文件,是 Java 源文件由 Java 編譯器編譯后生成的目標(biāo)代碼文件。編程人員和計(jì)算機(jī)都無(wú)法直接讀懂字節(jié)碼文件,它必須由專用的 Java 解釋器來(lái)解釋執(zhí)行,因此 Java 是一種在編譯基礎(chǔ)上進(jìn)行解釋運(yùn)行的語(yǔ)言。
Java 解釋器負(fù)責(zé)將字節(jié)碼文件翻譯成具體硬件環(huán)境和操作系統(tǒng)平臺(tái)下的機(jī)器代碼,以便執(zhí)行。因此 Java 程序不能直接運(yùn)行在現(xiàn)有的操作系統(tǒng)平臺(tái)上,它必須運(yùn)行在被稱為 Java 虛擬機(jī)的軟件平臺(tái)之上。
Java 虛擬機(jī)(JVM)是運(yùn)行 Java 程序的軟件環(huán)境,Java 解釋器是 Java 虛擬機(jī)的一部分。在運(yùn)行 Java 程序時(shí),首先會(huì)啟動(dòng) JVM,然后由它來(lái)負(fù)責(zé)解釋執(zhí)行 Java 的字節(jié)碼程序,并且 Java 字節(jié)碼程序只能運(yùn)行于 JVM 之上。這樣利用 JVM 就可以把 Java 字節(jié)碼程序和具體的硬件平臺(tái)以及操作系統(tǒng)環(huán)境分隔開(kāi)來(lái),只要在不同的計(jì)算機(jī)上安裝了針對(duì)特定平臺(tái)的 JVM,Java 程序就可以運(yùn)行,而不用考慮當(dāng)前具體的硬件平臺(tái)及操作系統(tǒng)環(huán)境,也不用考慮字節(jié)碼文件是在何種平臺(tái)上生成的。
JVM 把這種不同軟、硬件平臺(tái)的具體差別隱藏起來(lái),從而實(shí)現(xiàn)了真正的二進(jìn)制代碼級(jí)的跨平臺(tái)移植。JVM 是 Java 平臺(tái)架構(gòu)的基礎(chǔ),Java 的跨平臺(tái)特性正是通過(guò)在 JVM 中運(yùn)行 Java 程序?qū)崿F(xiàn)的。Java 的這種運(yùn)行機(jī)制可以通過(guò)下圖來(lái)說(shuō)明。
Java 語(yǔ)言這種“一次編寫(xiě),到處運(yùn)行”的方式,有效地解決了目前大多數(shù)高級(jí)程序設(shè)計(jì)語(yǔ)言需要針對(duì)不同系統(tǒng)來(lái)編譯產(chǎn)生不同機(jī)器代碼的問(wèn)題,即硬件環(huán)境和操作平臺(tái)的異構(gòu)問(wèn)題,大大降低了程序開(kāi)發(fā)、維護(hù)和管理的開(kāi)銷(xiāo)。
提示:Java 程序通過(guò) JVM 可以實(shí)現(xiàn)跨平臺(tái)特性,但 JVM 是不跨平臺(tái)的。也就是說(shuō),不同操作系統(tǒng)之上的 JVM 是不同的,Windows 平臺(tái)之上的 JVM 不能用在 Linux 平臺(tái),反之亦然。