1、检查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文件的路径问题。
如图两处地方需统一对应起来。
3、解决方法
(1)注释或删去package语句。在当前类文件路径下执行以下命令:
- javac HelloWorld.java
- java HelloWorld.class
(2)创建与package同名同级的文件夹,将该类文件放进去。
在包路径的上一个目录执行命令(此处为 D:javacode/):
- java -cp . org.main.HelloWorld
-cp为 可选参数 -classpath的简写,用于指定查找用户类文件和注释处理程序的位置。
JVM根据classpath设置的.
在当前目录下查找org.main.HelloWorld
,即实际搜索文件必须位于org.main.HelloWrold.class
。如果指定的.class
文件不存在,或者目录结构和包名对不上,均会报错。
问题成功搞定!另外这里的细节还是蛮多的,尤其CLASSPATH环境变量和-claspath参数值得我们好好深究一番。古话说的话,温故而知新,可以为师矣嘛。