一、简述:

cmd中,执行java命令与javac命令的区别:

javac:是编译命令,将java源文件编译成.class字节码文件。

例如:javac hello.java

将生成hello.class文件。

 

java:是运行字节码文件;由java虚拟机对字节码进行解释和运行。

例如:java hello

 

二、详述:

下面我们来写个java文件试试。

1、打开记事本,输入一个类+主函数

Java使用命令行debug 命令行javac_javac和java

public class Hello{
	public static void main(String[] args) {
		System.out.println("Hello World");
	}
}

2、点击 文件->保存,保存到相应文件夹下,文件名修改了xxx.java

Java使用命令行debug 命令行javac_javac和java_02

Java使用命令行debug 命令行javac_javac和java_03

3、在Hello.java文件夹内,空白位置,按住键盘Shift,右击鼠标,选择“在此处打开命令窗口”

Java使用命令行debug 命令行javac_cmd运行java_04

Java使用命令行debug 命令行javac_Java使用命令行debug_05

4、输入 javac Hello.java 回车

如果java类书写格式没有错误,cmd不会报错,而且在java文件同目录内生成一个class文件。

Java使用命令行debug 命令行javac_java javac_06

Java使用命令行debug 命令行javac_java javac_07

5、输入 java Hello 回车

若输出下图,恭喜你,成功了!你已经把java类中,输出打印“Hello World”显示在cmd命令行中。

Java使用命令行debug 命令行javac_Java使用命令行debug_08

 

三、总结:

首先我们使用记事本编写java源代码,扩展名.java;

在命令行模式中,输入命令:javac 源文件名.java,对源代码进行编译,生成class字节码文件;

编译完成后,如果没有报错信息,输入命令:java Hello,对class字节码文件进行解释运行,打印“Hello World”。

为了方便大家理解javac和java编译运行过程,可以看下图:

Java使用命令行debug 命令行javac_java javac_09

至此,我相信大家应该对javac和java使用有了比较客观的了解。

 

四、答疑:

接下来,我们来看一下大家在实践中容易遇到的问题。

问题一:cmd命令一定要准确,区分大小写,注意是否要加扩展名。

javac Hello.java

java Hello

问题二:javac命令报错,如下图

Java使用命令行debug 命令行javac_Java使用命令行debug_10

javac命令报错,一般都是java代码有误,需要检查修改。

下图中,java代码很明显的错误,输出打印语句写在了main函数的外面,修改正确就不会报错了。

javac命令报错,去看java代码,肯定有错误。

Java使用命令行debug 命令行javac_javac和java区别_11

问题三:javac命令执行完成,生成class文件,但是java命令报错,如下图

Java使用命令行debug 命令行javac_java javac_12

我查阅资料,找到报错的原因,首先检查java源代码,记住,java类不要加package路径!再就是java环境变量有问题,咱们一起来检查一下。

右击“计算机-属性-高级系统设置”,单击“环境变量”。我相信大家都已经配置java环境变量,咱们来检查一下,如果不会配置java环境变量,请查看java开发配置环境变量。

Java使用命令行debug 命令行javac_java javac_13

逐一核对 ”JAVA_HOME” “Path” “CLASSPATH”

(1)"JAVA_HOME",变量值是你的电脑JDK的安装路径,我的是"D:\java\tool\java1.8\JDK"

(2)"Path",在原变量值的最后面加上”;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”

(3)”CLASSPATH”,变量值”.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”

特别注意变量值开头是”.;”(点分号),这个地方需要特别注意,我就是因为这个点和分号不对报错的。

Java使用命令行debug 命令行javac_javac和java_14

java源码修改后,需要把之前生成的class文件删除,从新运行javac和java命令。

环境变量修改后,一定要重启cmd命令行窗口,再把把之前生成的class文件删掉,重新运行javac和java命令。

注:若在输入javac命令时,显示'javac'不是内部或外部命令,原因也是因为没有提前安装好JDK开发环境或环境变量配置有误。

 


注:作者 望穿秋水见伊人,本人使用Windows 7旗舰版64位操作系统