2023-06-15 JVM by Rust 第一天

1. Java命令

Java 虚拟机的工作是运行 Java 应用程序。和其他类型的应用程序一样,Java 应用程序也需要一个入口点,这个入口点就是我们熟知的 main() 方法。如果一个类包含 main() 方法,这个类就可以用来启动 Java 应用程序,我们把这个类叫作主类。最简单的 Java 程序是只有一个 main() 方法的类,如著名的 HelloWorld 程序。

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

那么 Java 虚拟机如何知道我们要从哪个类启动应用程序呢?对此,Java 虚拟机规范没有明确规定。也就是说,是由虚拟机实现自行决定的。比如 Oracle 的 Java 虚拟机实现是通过 java 命令来启动的,主类名由命令行参数指定。java 命令有如下 4 种形式:

java [-options] class [args]
java [-options] -jar jarfile [args]
javaw [-options] class [args]
javaw [-options] -jar jarfile [args]
可以向 java 命令传递三组参数: 选项、主类名(或者 JAR 文件名) 和 main() 方法参数。选项由减号(-)开头。通常,第一个非选项参数给出主类的完全限定名 (fully qualified class name)。但是如果用户提供了 -jar 选项,则第一个非选项参数表示 JAR 文件名,java 命令必须从这个 JAR 文件中寻找主类。javaw 命令和 java 命令几乎一样,唯一的差别在于,javaw 命令不显示命令行窗口,因此特别适合用于启动 GUI (图形用户界面) 应用程序。

2. 编写命令行工具

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 创建项目

➜  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 打开项目

IDEA 安装 Rust 插件

image.png

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

2.4 项目分包

用 Cargo 的 workspaces 功能来组织代码。workspaces 允许将多个相关的 Rust 包组合成一个单一的逻辑单元,以便更轻松地管理和构建。


image.png

3. 编写一个简单的 javac

clap 来解析命令行参数

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 精心收集整理的教程笔记 第01天 Java基础入门 第1章计算机基础 1.1计算机 计算机(computer)俗称...
    Java帮帮阅读 11,201评论 1 109
  • JVM - 调优命令 jps 显示指定系统内所有jvm进程信息命令格式:jps [options] [hostid...
    万福来阅读 1,157评论 0 0
  • 一、JVM是什么 JVM就是Java虚拟机(Java Virtual Machine),简单来说,JVM消除了开发...
    Goet阅读 3,502评论 0 0
  • JVM 调优概述 性能定义 吞吐量 - 指不考虑 GC 引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性...
    裘马轻狂大帅阅读 1,898评论 0 1
  • JVM 调优概述 性能定义 吞吐量 - 指不考虑 GC 引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性...
    裘马轻狂大帅阅读 1,820评论 0 1