现象

执行java Test命令时报错找不到或无法加载主类

  1. 第一种

Java运行.class文件 Could not find or load main class java运行不了class文件_jdk

Java运行.class文件 Could not find or load main class java运行不了class文件_java_02

  1. Java运行.class文件 Could not find or load main class java运行不了class文件_当前目录_03
  2. 第二种

Java运行.class文件 Could not find or load main class java运行不了class文件_当前目录_04

Java运行.class文件 Could not find or load main class java运行不了class文件_当前目录_05

原因

  1. 环境变量没有把当前路径(.代表当前路径)加进去。
  2. java命令执行时package指定的包路径没写。

解决方法


  1. java执行class文件是根据CLASSPATH指定的地方来找,不是我们理解当前目录。
    如果希望它查询当前目录,需要在CLASSPATH中加入“.;”,代表当前目录。
    比如CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
  2. Java运行.class文件 Could not find or load main class java运行不了class文件_jdk_06

  3. 然后重启cmd命令行,再执行就可以了。
  4. Java运行.class文件 Could not find or load main class java运行不了class文件_java_07

  5. java执行class文件对package的路径是强依赖的。
    它在执行的时候会严格以当前用户路径为基础,按照package指定的包路径转化为文件路径去搜索class文件。
    所以返回package指定的包路径的上一层路径去执行,就不会报错了。
  6. Java运行.class文件 Could not find or load main class java运行不了class文件_jdk_08