GO语言写java虚拟机 笔记(第一章) - Go语言中文社区

GO语言写java虚拟机 笔记(第一章)


1. 准备工作

安装jdk 
安装Go 
    http://pan.baidu.com/s/1ge4X1Ph    1.6

下载安装文件  双击运行 测试 如图
如上图 测试通过 GO环境安装成功

GO 工作空间

GO的工作空间可以时候任何地方,需要配置环境变量
我配置为(D:/go_worlspace)

我配置D盘 go_workspace
打开命令行窗口 执行go env 看到如下图输出 GOPATH环境变量就设置成功
这里写图片描述

工作空间目录结构 如图
工作空间路径及结构
src: GO语言源代码 自己创建 必须要有的
pkg: 目录中编译好的包文件 自动创建
bin: 链接好的可执行文件 自动创建
创建项目目录
在src下创建jvmgo,jvmgo目录下创建 ch01(第一章)
D:go_workspacesrc
|-jvmgo
|-ch01 (第一章)
|-ch02 (第二章)
|- …

编写命令行工具

创建 cmd.go

package main
import "flag"
import "fmt"
import "os"


type Cmd struct {
    helpFlag bool
    versionFlag bool
    cpOption string 
    class string 
    args []string
}

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.Parse()

    args := flag.Args()
    if len(args) > 0 {
        cmd.class = args[0]
        cmd.args = args[1:]
    }

    return cmd

}

func printUsage() {
    fmt.Printf("Usage: %s [-option] class [args...]n", os.Args[0])
}

测试代码 创建main.go

package main

import "fmt"

func main() {
    cmd := parseCmd()
    if cmd.versionFlag {
        fmt.Println("version 0.0.1")
    }else if cmd.helpFlag || cmd.class == ""{
        printUsage()
    }else{
        startJvm(cmd)
    }
}

func startJvm(cmd *Cmd) {
    fmt.Printf("classpath:%s class:%s args:%v n",
    cmd.cpOption, cmd.class, cmd.args)
}

打开命令行窗口 执行编译
go install jvmgoch01 没有任何输出说明编译成功 在go_workspace 下bin 会出现 ch01.exe 文件 可以运行测试了
这里写图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u013718150/article/details/74202397
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-27 14:02:28
  • 阅读 ( 1170 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢