2023-06-15 JVM by Rust 第一天

1. Java命令

Java 虛擬機(jī)的工作是運(yùn)行 Java 應(yīng)用程序。和其他類(lèi)型的應(yīng)用程序一樣,Java 應(yīng)用程序也需要一個(gè)入口點(diǎn),這個(gè)入口點(diǎn)就是我們熟知的 main() 方法。如果一個(gè)類(lèi)包含 main() 方法,這個(gè)類(lèi)就可以用來(lái)啟動(dòng) Java 應(yīng)用程序,我們把這個(gè)類(lèi)叫作主類(lèi)。最簡(jiǎn)單的 Java 程序是只有一個(gè) main() 方法的類(lèi),如著名的 HelloWorld 程序。

public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello, world! ");
  }
}

那么 Java 虛擬機(jī)如何知道我們要從哪個(gè)類(lèi)啟動(dòng)應(yīng)用程序呢?對(duì)此,Java 虛擬機(jī)規(guī)范沒(méi)有明確規(guī)定。也就是說(shuō),是由虛擬機(jī)實(shí)現(xiàn)自行決定的。比如 Oracle 的 Java 虛擬機(jī)實(shí)現(xiàn)是通過(guò) java 命令來(lái)啟動(dòng)的,主類(lèi)名由命令行參數(shù)指定。java 命令有如下 4 種形式:

java [-options] class [args]
java [-options] -jar jarfile [args]
javaw [-options] class [args]
javaw [-options] -jar jarfile [args]
可以向 java 命令傳遞三組參數(shù): 選項(xiàng)、主類(lèi)名(或者 JAR 文件名) 和 main() 方法參數(shù)。選項(xiàng)由減號(hào)(-)開(kāi)頭。通常,第一個(gè)非選項(xiàng)參數(shù)給出主類(lèi)的完全限定名 (fully qualified class name)。但是如果用戶(hù)提供了 -jar 選項(xiàng),則第一個(gè)非選項(xiàng)參數(shù)表示 JAR 文件名,java 命令必須從這個(gè) JAR 文件中尋找主類(lèi)。javaw 命令和 java 命令幾乎一樣,唯一的差別在于,javaw 命令不顯示命令行窗口,因此特別適合用于啟動(dòng) GUI (圖形用戶(hù)界面) 應(yīng)用程序。

2. 編寫(xiě)命令行工具

2.1 Rust 版本

(base) ?  Downloads cargo -V
cargo 1.70.0 (ec8a8a0ca 2023-04-25)
(base) ?  Downloads rustc -V
rustc 1.70.0 (90c541806 2023-05-31) (built from a source tarball)

2.2 創(chuàng)建項(xiàng)目

?  hub cargo new rjvm     
     Created binary (application) `rjvm` package
?  hub cd rjvm 
?  rjvm git:(master) ? ll
total 8
-rw-r--r--  1 stg  staff   173B Jun 15 17:00 Cargo.toml
drwxr-xr-x  3 stg  staff    96B Jun 15 17:00 src

2.3 打開(kāi)項(xiàng)目

IDEA 安裝 Rust 插件

image.png

我的 MacBookPro 是 M2 ,brew 安裝的 Rust , 配置 Rust 目錄
/opt/homebrew/Cellar/rust/1.70.0
image.png

2.4 項(xiàng)目分包

用 Cargo 的 workspaces 功能來(lái)組織代碼。workspaces 允許將多個(gè)相關(guān)的 Rust 包組合成一個(gè)單一的邏輯單元,以便更輕松地管理和構(gòu)建。


image.png

3. 編寫(xiě)一個(gè)簡(jiǎn)單的 javac

clap 來(lái)解析命令行參數(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 精心收集整理的教程筆記 第01天 Java基礎(chǔ)入門(mén) 第1章計(jì)算機(jī)基礎(chǔ) 1.1計(jì)算機(jī) 計(jì)算機(jī)(computer)俗稱(chēng)...
    Java幫幫閱讀 6,123評(píng)論 1 109
  • JVM - 調(diào)優(yōu)命令 jps 顯示指定系統(tǒng)內(nèi)所有jvm進(jìn)程信息命令格式:jps [options] [hostid...
    萬(wàn)福來(lái)閱讀 228評(píng)論 0 0
  • 一、JVM是什么 JVM就是Java虛擬機(jī)(Java Virtual Machine),簡(jiǎn)單來(lái)說(shuō),JVM消除了開(kāi)發(fā)...
    Goet閱讀 593評(píng)論 0 0
  • JVM 調(diào)優(yōu)概述 性能定義 吞吐量 - 指不考慮 GC 引起的停頓時(shí)間或內(nèi)存消耗,垃圾收集器能支撐應(yīng)用達(dá)到的最高性...
    裘馬輕狂大帥閱讀 321評(píng)論 0 1
  • JVM 調(diào)優(yōu)概述 性能定義 吞吐量 - 指不考慮 GC 引起的停頓時(shí)間或內(nèi)存消耗,垃圾收集器能支撐應(yīng)用達(dá)到的最高性...
    裘馬輕狂大帥閱讀 293評(píng)論 0 1

友情鏈接更多精彩內(nèi)容