栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

用 JAVA 撸一遍 JVM 01: 命令行工具

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用 JAVA 撸一遍 JVM 01: 命令行工具

第一章先通过main方法模拟cmd 输出一些相关信息

jcommander

引入依赖



    com.beust
    jcommander
    1.72

Cmd

package com.linnine.jvm;

public class Cmd {

    @Parameter(names = {"-?", "-help"}, description = "print help message", order = 3, help = true)
    boolean helpFlag = false;

    @Parameter(names = "-version", description = "pringt version and exit", order = 2)
    boolean versionFlag = false;

    @Parameter(names = {"-cp", "-classpath"}, description = "classpath", order = 1)
    String classpath;

    @Parameter(description = "main class and args")
    List mainClassAndArgs;

    boolean ok;

    String getMainClass() {
        return mainClassAndArgs != null && !mainClassAndArgs.isEmpty() ? mainClassAndArgs.get(0) : null;
    }

    List getAppArgs() {
        return mainClassAndArgs != null && mainClassAndArgs.size() > 1 ? mainClassAndArgs.subList(1, mainClassAndArgs.size()) : null;
    }

    static Cmd parse(String[] argv) {
        Cmd args = new Cmd();
        JCommander cmd = JCommander.newBuilder().addCommand(args).build();
        cmd.parse(argv);
        args.ok = true;
        return args;
    }
}
main

package com.linnine.jvm;

public class Main {

    public static void main(String[] args) {
        Cmd cmd = Cmd.parse(args);
        if(!cmd.ok || cmd.helpFlag){
            System.out.println("Usage: 
[-options] class [args...]"); return; } if (cmd.versionFlag){ System.out.println("java version "1.8.0""); return; } startJvm(cmd); } private static void startJvm(Cmd cmd) { System.out.printf("classpath:%s class:%s args:%sn", cmd.classpath, cmd.getMainClass(), cmd.getAppArgs()); } }

报错了,挺懵逼的


人麻了 这里方法用错了,上面顺手打了个addCommand()

但还是有点问题

还是不太行 先跳过


我又跳回来了, 少了一些调试配置

idea上面的run ,

这里加上参数-version, 原本是提示program arguments

然后就可以了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/978833.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号