我是靠谱客的博主 发嗲钥匙,这篇文章主要介绍一、解析命令行参数,现在分享给大家,希望可以做个参考。

  本章实现的是使用命令行java命令启动java虚拟机,运行java应用,对传入的参数进行解析。参数主要包括java应用的路径(也就是classpath),main方法所在的类路径,jre路径。

  cmd.go使用go的flag类库对参数进行解析,参数格式

Usage: %s [-options] class [args...]
func readCmd() *Cmd {
cmd:=new(Cmd)
flag.BoolVar(&cmd.helpFlag,"help",false,"print help message")
flag.BoolVar(&cmd.versionFlag,"version",false,"print version message")
flag.StringVar(&cmd.classpath,"cp","","classpath")
flag.StringVar(&cmd.jrePath,"jre","","jre path")
flag.Parse()
args:=flag.Args()
if len(args)>0{
cmd.mainClass=args[0]
cmd.args=args[1:]
}
return cmd
}

如果用户没有输入classpath或jre路径,可以从环境变量中获取默认路径。

func main()
{
cmd:=readCmd()
if cmd.helpFlag{
printUsage()
return
}
if cmd.versionFlag{
fmt.Println("jvmgo version 1.0")
return
}
if cmd.mainClass==""{
fmt.Println("Please input main class")
return
}
if cmd.classpath==""{
cmd.classpath=os.Getenv(CLASS_PATH)
}
if cmd.jrePath==""{
cmd.jrePath=os.Getenv(JAVA_HOME)+"\jre"
}
startJVM(cmd)
}

获取到命令行参数后,就可以根据参数开始启动jvm了,启动jvm的过程会在后面几章介绍。

github地址:https://github.com/congye6/jvmgo

最后

以上就是发嗲钥匙最近收集整理的关于一、解析命令行参数的全部内容,更多相关一、解析命令行参数内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部