執行java程序,Java代碼執行

本文目錄一覽:

如何在cmd下執行java程序?謝謝

如圖新建一個hello.java文件,寫上你的代碼。

2.在文件的目錄下打開cmd,輸入命令 javac hello.java

3.編譯成功會生成hello.class文件

4.運行編譯好的文件,輸入命令javac hello (不需要文件後綴)。

拓展:Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行複雜的編程 。

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 平台,反之亦然。

在哪兒執行java

可以有多種方式執行java程序,一般常用以下兩種方式:

1、直接在控制台上編譯執行

java程序的運行有三個步驟:編寫–編譯–執行。

可以在控制台上運行:windows鍵+R,輸入「cmd」進入到控制台。然後顯示找到java文件的位置,然後編譯文件–執行文件

2、在相應軟體上編寫執行

一般用eclipse和myeclipse來編寫java程序。可以直接編寫完代碼保存後,直接點擊運行即可。

java如何運行,從哪運行?

jdk安裝好配置環境變數後,系統就承認了 java,javac等命令,當編譯好java文件,就可以在開始——運行——cmd的dos系統下運用指定命令運行java文件。

JDK 是整個Java的核心,包括了Java運行環境,Java工具和Java基礎的類庫。

JDK包含的基本組件包括:

javac – 編譯器,將源程序轉成位元組碼

jar – 打包工具,將相關的類文件打包成一個文件

javadoc – 文檔生成器,從源碼注釋中提取文檔

jdb – debugger,查錯工具

java – 運行編譯後的java程序(.class後綴的)

appletviewer:小程序瀏覽器,一種執行HTML文件上的Java小程序的Java瀏覽器。 Javah:產生可以調用Java過程的C過程,或建立能被Java程序調用的C過程的頭文件。 Javap:Java反彙編器,顯示編譯類文件中的可訪問功能和數據,同時顯示位元組代碼含義。 Jconsole: Java進行系統調試和監控的工具

總之,jdk並不是一個應運軟體,並不能從哪裡運行。編譯時在任何可輸入文本的軟體中均可(通常用.txt記事本編譯),編譯好後改名.java文件,在dos系統中用 javac命令編譯連接 java命令 .運行。

java程序運行的五個步驟

1、Java程序從源文件創建到程序運行要經過兩大步驟:1、源文件由編譯器編譯成位元組碼(ByteCode)  2、位元組碼由java虛擬機解釋運行。因為java程序既要編譯同時也要經過JVM的解釋運行,所以說Java被稱為半解釋語言( “semi-interpreted” language)。

第一步(編譯): 創建完源文件之後,程序會先被編譯為.class文件。Java編譯一個類時,如果這個類所依賴的類還沒有被編譯,編譯器就會先編譯這個被依賴的類,然後引用,否則直接引用,這個有點像make。如果java編譯器在指定目錄下找不到該類所其依賴的類的.class文件或者.java源文件的話,編譯器話報「cant find symbol」的錯誤。

      編譯後的位元組碼文件格式主要分為兩部分:常量池和方法位元組碼。常量池記錄的是代碼出現過的所有token(類名,成員變數名等等)以及符號引用(方法引用,成員變數引用等等);方法位元組碼放的是類中各個方法的位元組碼。

第二步(運行):java類運行的過程大概可分為兩個過程:1、類的載入  2、類的執行。需要說明的是:JVM主要在程序第一次主動使用類的時候,才會去載入該類。也就是說,JVM並不是在一開始就把一個程序就所有的類都載入到內存中,而是到不得不用的時候才把它載入進來,而且只載入一次。

2、下面是程序運行的詳細步驟:

在編譯好java程序得到Main.class文件後,在命令行上敲java Main。系統就會啟動一個jvm進程,jvm進程從classpath路徑中找到一個名為Main.class的二進位文件,將Main的類信息載入到運行時數據區的方法區內,這個過程叫做Main類的載入。

然後JVM找到Main的主函數入口,開始執行main函數。

main函數的第一條命令是Animal  animal = new Animal(“Puppy”);就是讓JVM創建一個Animal對象,但是這時候方法區中沒有Animal類的信息,所以JVM馬上載入Animal類,把Animal類的類型信息放到方法區中。

載入完Animal類之後,Java虛擬機做的第一件事情就是在堆區中為一個新的Animal實例分配內存, 然後調用構造函數初始化Animal實例,這個Animal實例持有著指向方法區的Animal類的類型信息(其中包含有方法表,java動態綁定的底層實現)的引用。

當使用animal.printName()的時候,JVM根據animal引用找到Animal對象,然後根據Animal對象持有的引用定位到方法區中Animal類的類型信息的方法表,獲得printName()函數的位元組碼的地址。

開始運行printName()函數。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/304851.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-01 11:06
下一篇 2025-01-01 11:06

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29

發表回復

登錄後才能評論