【问题引入】
很多时候,需要用到命令行来进行Java文件的编译。在用习惯了IDE 可能会不清楚如何在cmd命令行窗口进行编译,简单的都还好,带有包路径的可能会让很多人觉得有点小头疼。最近试了一下,发现了问题,就研究整理了一下记录吧。
【注1】环境准备, JDK,classpath 都需要配置正确。
【注2】基本的编译命令
javac ClassName.java — 编译Java文件,生成ClassName.class 文件
java ClassName — 执行编译后的class 文件
以下主要分为两种说明:
一、最简单的类,仅包含main函数
public class Demo{
public static void main(String[] args) {
System.out.println(“Hello world!”);
}
}
因为就是单纯的Java文件格式,直接执行编译和执行命令即可。如下图所示:
二、带有包的文件编译,如工程下的某个Java 文件
【注1】由于Java 文件中有package xxx,即包的信息,因此在执行编译后的Java 文件时就需要带上包名。
即格式: 包名.Java文件名
//示例如下:
package pkg;
public class Demo{
public static void main(String[] args) {
for(int i=0; i<args.length; i ){
System.out.println(i==0 ? args[i] : ” ” args[i]);
}
System.out.println(“Hello world!”);
}
}
该情况的编译方法如下:
方式一:cmd,找到文件所在目录,输入以下命令
(后面是空白,不报错一般就是编译成功了)
–参数说明
-d 后面跟目录,表示将javac 命令编译后生成的 class文件的存放路径。 “.”表示当前目录
-encoding UTF-8 ,如果需要修改文件的编码,则添加 -encoding 参数,后面接编码格式
1)执行上述命令后结果如下
(在当前路径下生成demo文件夹,对于工程里的包名,文件夹下是编译后的class文件)
2)编译完成后,执行如下命令
— 参数说明
java 命令 包名.类名 接收的参数
3)结果如下
方式二:
cmd,找到文件所在目录,直接输入编译命令
1)执行后,发现当前demo 路径下,生成 Test.class文件
2)之后要执行 java命令,但要注意执行的格式: 包名 类名。所以此时需要将目录退回上一层
3)执行后的结果如下:
【注】如果没有退回上一层目录,无论是直接执行 java Test 还是 java demo.Test 或其他格式都会报错