美文网首页
2023-06-15 JVM by Rust 第一天

2023-06-15 JVM by Rust 第一天

作者: 天高s | 来源:发表于2023-06-15 16:01 被阅读0次

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 来解析命令行参数

相关文章

网友评论

      本文标题:2023-06-15 JVM by Rust 第一天

      本文链接:https://www.haomeiwen.com/subject/lickydtx.html