java实现像cmd一样的语句

实现这个功能要用到我们的public static void main(String[] args) 主函数

 我们要用到main(String[] args) 函数中的string类型的数组args
 我们可以自己传参然后像cmd里面输入相应的命令就可以得到你想要的的结果,比如:ping命令之类的

看一下我写的代码,我是小白

public static void main(String[] args) throws Exception {
        //通过调用main函数里面的args数组来实现
        if (args[0].equals("-f")) {
            String printClsName = "com.L1_5.ConsolePrint";
            String nineClsName = "com.L1_3.NineCenter";
            int num = 8;
            IPrint p1 = (IPrint) Factory.getPrintObject(printClsName);
            Factory.getINineObject(nineClsName, num, p1).print(num);
        }
        if (args[0].equals("-p")) {
            System.out.println("彩蛋");
        }
    }

这个是在cmd中先在你的main方法中编译,代码javac 类名.java
然后在执行java 类名 -f(这后面就看你怎么写了,可以参考我的)
在这里会有问题,编译好了,运行找不到main方法

我给大家找到了解决方法

在这里插入图片描述

注意:编译的时候还是在你的源文件那里编译

 当然了,错误常伴吾身,接下来又会出现错误,因为我在这里面调用了其它包下的类方法,所以又会报错,我又给大家找到了解决的方法

解决方法

关键错在:你进去包目录下编译文件了,编译有包的源文件,应该在包的上一个目录去编译源文件,而且要带包结构

举个例子:源文件目录结构是 src/carSystem/Car.java和src/carSystem/Rent.java,这两个文件的包是carSystem,而Rent.java有被Car.java引用的public类,所以,这时要先编译 javac carSystem/Rent.java,然后再 javac carSystem/Car.java

原因分析:你进入包目录下去javac Car.java的时候,因为这个java文件和Rent.java都是package carSystem的,所以他会在当前目录下去找carSystem目录下面的Rent这个类,然而,你的Rent.class是被编译到了当前CarSystem目录了,并不是当前目录的carSystem下。

按照上述方法还是会出现问题

然后使用 -cp . 把当前目录包括进去
结果:大功告成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值