终端窗口javac编译java文件,java执行class文件注意事项

发布时间 2023-06-06 21:08:25作者: Journey&Flower

java代码如下

public class AutoBoxingUnBoxing {
    public static void main(String[] args) {
        Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150;
        System.out.println(f1 == f2);
        System.out.println(f3 == f4);
    }
}

1、第一点,存储的文件名必须和类名保持一致 AutoBoxingUnBoxing.java

运行 javac命令, 文件名int和Integer自动装箱和拆箱.java和 class 名AutoBoxingUnBoxing 不一致报错

生成class文件

PS D:\Users\JourneyOfFlower\Desktop> ls                            


    目录: D:\Users\JourneyOfFlower\Desktop


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2023.06.06     20:24            224 int和Integer自动装箱和拆箱.java

编译int和Integer自动装箱和拆箱.java文件失败

D:\Users\JourneyOfFlower\Desktop\>javac .\int和Integer自动装箱和拆箱.java
.\int和Integer自动装箱和拆箱.java:1: 错误: 类AutoBoxingUnBoxing是公共的, 应在名为 AutoBoxingUnBoxing.java 的文件中声明
public class AutoBoxingUnBoxing {
       ^
1 个错误

2、将文件名改为和class名称一致

成功编译AutoBoxingUnBoxing.class

PS D:\Users\JourneyOfFlower\Desktop> javac .\AutoBoxingUnBoxing.java
PS D:\Users\JourneyOfFlower\Desktop> 

生成AutoBoxingUnBoxing.class文件

PS D:\Users\JourneyOfFlower\Desktop> ls                            


    目录: D:\Users\JourneyOfFlower\Desktop


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2023.06.06     20:26            671 AutoBoxingUnBoxing.class
-a----        2023.06.06     20:26            224 AutoBoxingUnBoxing.java

3、java命令执行

成功执行

PS D:\Users\JourneyOfFlower\Desktop> java AutoBoxingUnBoxing
true
false
PS D:\Users\JourneyOfFlower\Desktop> 

powershell终端有一点坑,按 Tab 补全路径,即使文件在当前路径,仍会在路径前加 .\ 前缀,并带上后缀.class

PS D:\Users\JourneyOfFlower\Desktop> java .\AutoBoxingUnBoxing.class

4、这里需要注意两点

class文件不能带后缀名.class

PS D:\Users\JourneyOfFlower\Desktop> java AutoBoxingUnBoxing.class
错误: 找不到或无法加载主类 AutoBoxingUnBoxing.class
PS D:\Users\JourneyOfFlower\Desktop> 

class文件前不能带路径名

相对路径.\和绝对路径都不可以带,否则都会报错,提示找不到或无法加载主类

PS D:\Users\JourneyOfFlower\Desktop> java .\AutoBoxingUnBoxing
错误: 找不到或无法加载主类 .\AutoBoxingUnBoxing
PS D:\Users\JourneyOfFlower\Desktop> 
PS D:\Users\JourneyOfFlower\Desktop> java D:\Users\JourneyOfFlower\Desktop\AutoBoxingUnBoxing 
错误: 找不到或无法加载主类 D:\Users\JourneyOfFlower\Desktop\AutoBoxingUnBoxing
PS D:\Users\JourneyOfFlower\Desktop>