解决Java- 错误: 找不到或无法加载主类 HelloWorld.java

解决Java- 错误: 找不到或无法加载主类 HelloWorld.java

1、检查java环境变量配置

解决Java- 错误: 找不到或无法加载主类 HelloWorld.java

JAVA_HOME:D:\Java\jdk1.8.0_91

Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

至于存在争议的CLASSPATH要不要配置,参考廖雪峰老师博客(不建议设置)https://www.liaoxuefeng.com/wiki/1252599548343744/1260466914339296


2、问题分析

如果JDK编译正常,JAVA_HOME配置正确。如果这样的话,就与HelloWorld类放的实际位置有关,即package路径和类路径的设置不匹配,执行器找不到类文件。说白了就是编译后的class文件的路径问题。

解决Java- 错误: 找不到或无法加载主类 HelloWorld.java

解决Java- 错误: 找不到或无法加载主类 HelloWorld.java

如图两处地方需统一对应起来。


3、解决方法

(1)注释或删去package语句。在当前类文件路径下执行以下命令:

  • javac HelloWorld.java
  • java HelloWorld.class


(2)创建与package同名同级的文件夹,将该类文件放进去。

在包路径的上一个目录执行命令(此处为 D:javacode/):

  • java -cp . org.main.HelloWorld

-cp为 可选参数 -classpath的简写,用于指定查找用户类文件和注释处理程序的位置。

解决Java- 错误: 找不到或无法加载主类 HelloWorld.java

JVM根据classpath设置的.在当前目录下查找org.main.HelloWorld,即实际搜索文件必须位于org.main.HelloWrold.class。如果指定的.class文件不存在,或者目录结构和包名对不上,均会报错。


问题成功搞定!另外这里的细节还是蛮多的,尤其CLASSPATH环境变量和-claspath参数值得我们好好深究一番。古话说的话,温故而知新,可以为师矣嘛。

上一篇:Spring-利用ThreadLocal解决线程安全问题


下一篇:为什么CRM Opportunity的删除会触发一个通向BW系统的RFC