起因

在cmd环境直接进行代码编译的时候居然出现了这个错误。
之前倒是没想到还会出现javac的错误。

1、环境配置正常

以下名称分别对应在环境变量中的名字,代码块中的地址为需要填写的值。
JAVA_HOME地址

C:\Program Files\Java\jdk1.8.0_162

Path地址

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

CLASSPATH地址

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

需要在CLASSPATH环境变量中加入“.;”即可。“.”的意思是搜索当前目录。

Java是一种对格式和内容要求比较严格的语言。
一个类的全名应该是包名+类名。

所以以下分为两种情况来讨论:
1)没有写明包名,
2)写明包名。

2、没有包的类

HelloWorld.java

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

包所在目录

cmd中 javac 找不到文件 在cmd中javac找不到文件_java


在当前地址栏直接输入cmd,打开cmd编辑窗口(免去了跳转地址)

2.1执行前

cmd中 javac 找不到文件 在cmd中javac找不到文件_java_02


2.2 执行javac HelloWorld.java后,生成.class文件

cmd中 javac 找不到文件 在cmd中javac找不到文件_JAVA_03


2.3 执行java HelloWorld,输出函数的内容

cmd中 javac 找不到文件 在cmd中javac找不到文件_JAVA_04

3、有包的类

Hello.java的内容,有一个二级的包路径。
package的首字母小写,包名需要以;封号结尾。

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

3.1 当前路径

cmd中 javac 找不到文件 在cmd中javac找不到文件_cmd_05

3.2 执行语句生成class文件。

javac -d . Hello.java

javac -d . Hello.java

注意这句话里面有一个点,点的前后都需要有空格。

这句话表示根据类Hello.java中的包层级路径来生成对应的class文件。

cmd中 javac 找不到文件 在cmd中javac找不到文件_JAVA_06


查看当前生成的class文件路径

cmd中 javac 找不到文件 在cmd中javac找不到文件_cmd中 javac 找不到文件_07


3.3 回到刚刚的目录,

输入以下语句来执行类。

java test/exam/Hello

java test/exam/Hello

跳到包的路径的时候,需要为正斜杠/,因为\反斜杠这个符号是无法跳转进去的。

3.4 执行后的结果如下

cmd中 javac 找不到文件 在cmd中javac找不到文件_java_08

4、小结

在过程中一定要确保java的配置地址是正确的,尤其是Path。
因为一般Path中还有很多其他软件配置的path地址,比较繁杂。
推荐将环境变量值这里的参数复制出来到文本编辑器中查看。

java语句运行出错的,在cmd中直接输入cmd会有相关的帮助说明。

cmd中 javac 找不到文件 在cmd中javac找不到文件_cmd_09


5、总结

这个不是什么大问题,就是个小的配置,结果导致耽误了1、2个小时的时间。
写代码一定要注意环境的配置,编写的内容语句的正确性。
才能写出健壮的程序。