java 用命令编译、运行

public class Test{
    public void static void main(String[] args){
        A a = new A();
        a.setValue(10);
        System.out.println(a.getValue());
    }
}

一.  首先配置java jdk环境

包括环境变量,方便能在任何目录下使用java命令; 


二.  代码的编译和运行

对于写Java程序而言,我们主张源文件与class文件都有相同的目录结构,这样不仅会方便代码的组织管理,也使得在编译以及运行Java程序时少犯错误。 
举个例子,在src/main目录下新建如下2个类文件;
class A{

    private int value;
    
    public A(){
        value = 0;
    }
    
    public void setValue(int var){
        value = var;
    }
    
    public int getValue(){
        return value;
    }

}


public class Test{
    public void static void main(String[] args){
        A a = new A();
        a.setValue(10);
        System.out.println(a.getValue());
    }
}

注意这2个类文件中没有添加package说明,

编译:

在src/main/ 下,执行 javac Test.java,会发现当前目录下生成了Test.class 和A.class


运行:

继续在src/main/ 下,执行 java Test,终端会输出>10,即运行成功


问题:找不到或无法加载主类:

1.不添加package语句,如上,在src/ 目录下, 
执行java Test,会报错>错误: 找不到或无法加载主类 main.MyTest
执行 java -classpath main/ MyTest  成功
执行 java main.MyTest,会报错>错误: 找不到或无法加载主类 main.MyTest

2. 对比,在上述2个java文件中都加入,package main;
重新编译,然后再回到src目录下运行 java main.MyTest  成功


总结:

如果Java文件中 没有package语句,则这两个文件同属于一个默认包中(没有显示写package的文件都是属于默认包的)。 

Java类发现规则
要想成功编译java文件,需要有classpath和包名的共同配合。
类发现规则:class文件所在目录 = classpath + '\' + 包名中的'.'全变成’\' 

运行指定了package程序时,需要显示的写出其包名,即:java packagename.classname,其遵循与class文件一样的寻找规则,即在classpath+packagename中'.'变成'\' 所表示的路径下能够找到相应的classname所指的class文件。 

elipse或者IDEA等开发工具中均有classpath配置,开发人员可以配置修改也可以使用默认生成的,我发现一般都默认从src/目录下开始查找类;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值