- 自己动手写Java虚拟机
- 张秀宏
- 290字
- 2023-01-30 16:12:46
2.2 准备工作
从第2章开始,每章的代码都是建立在前一章的基础之上。把ch01目录复制一份,然后改名为ch02。因为本章要创建的源文件都在classpath包中,所以在ch02目录中创建一个classpath子目录。现在目录结构看起来应该是这样:
D:\go\workspace\src —-jvmgo —-ch01 —-ch02 —-classpath —-cmd.go —-main.go
我们的Java虚拟机将使用JDK的启动类路径来寻找和加载Java标准库中的类,因此需要某种方式指定jre目录的位置。命令行选项是个不错的选择,所以增加一个非标准选项-Xjre。打开ch02\cmd.go,修改Cmd结构体,添加XjreOption字段,代码如下:
type Cmd struct { helpFlag bool versionFlag bool cpOption string XjreOption string class string args []string }
parseCmd()函数也要相应修改,代码如下:
func parseCmd() *Cmd { cmd := &Cmd{} flag.Usage = printUsage flag.BoolVar(&cmd.helpFlag, "help", false, "print help message") flag.BoolVar(&cmd.helpFlag, "? ", false, "print help message") flag.BoolVar(&cmd.versionFlag, "version", false, "print version and exit") flag.StringVar(&cmd.cpOption, "classpath", "", "classpath") flag.StringVar(&cmd.cpOption, "cp", "", "classpath") flag.StringVar(&cmd.XjreOption, "Xjre", "", "path to jre") flag.Parse() ... //其他代码不变 }