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

简介: 针对初学者使用javac,java等命令编译class文件时出现的经典问题,提供解决思路和方法。

image.png

1、检查java环境变量配置

image.png

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文件的路径问题。

image.png

image.png

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


3、解决方法

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

  • javac HelloWorld.java
  • java HelloWorld.class


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

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

  • java -cp . org.main.HelloWorld

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

image.png

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


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

相关文章
|
Java Linux Maven
java依赖冲突解决问题之容器加载依赖jar包如何解决
java依赖冲突解决问题之容器加载依赖jar包如何解决
|
10月前
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
293 7
|
12月前
|
安全 Oracle Java
edge浏览器加载java插件
edge浏览器加载java插件
680 1
|
SQL Java 数据库连接
java连接数据库加载驱动到java项目
该博客文章介绍了如何在Java项目中通过代码加载数据库驱动并连接SQL Server数据库,包括具体的加载驱动和建立数据库连接的步骤,以及如何将驱动包添加到Java项目的构建路径中。
|
Java 编译器
Java健壮性 Java可移植性 JDK, JRE, JVM三者关系 Java的加载与执行原理 javac编译与JAVA_HOME环境变量介绍 Java中的注释与缩进 main方法的args参数
Java健壮性 Java可移植性 JDK, JRE, JVM三者关系 Java的加载与执行原理 javac编译与JAVA_HOME环境变量介绍 Java中的注释与缩进 main方法的args参数
136 1
|
Java 测试技术 Spring
Java SpringBoot 加载 yml 配置文件中字典项
Java SpringBoot 加载 yml 配置文件中字典项
143 0
|
前端开发 Java
java加载class文件的原理
java加载class文件的原理
|
存储 算法 Java
JAVA程序运行问题之Java类加载到JVM中加载类时,实际上加载的是什么如何解决
JAVA程序运行问题之Java类加载到JVM中加载类时,实际上加载的是什么如何解决
|
前端开发 Java 编译器
Java面试题:描述Java类的加载过程,包括加载、链接、初始化等阶段。
Java面试题:描述Java类的加载过程,包括加载、链接、初始化等阶段。
73 0
|
数据采集 Web App开发 前端开发
技术心得记录:如何用JAVA爬取AJAX加载后的页面(转载)
技术心得记录:如何用JAVA爬取AJAX加载后的页面(转载)

热门文章

最新文章