命令行运行java的时候总是提示:找不到或无法加载主类

本文介绍了解决使用命令行执行Java程序时遇到的“找不到或无法加载主类”错误的方法。通过调整环境变量PATH和CLASSPATH,在末尾添加'.;'解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直用eclipse在开发,今天偶然需要用命令行来编译和执行一个java文件。

首先将 .java 文件用javac进行编译,通过且已经生成了 .class文件

但是运行 java 命令的时候提示:找不到或无法加载主类


但是明明这个helloworld.class文件是存在的


于是怀疑应该是环境变量的问题,经过搜索相关资料,发再检查一下自己的环境变量设置,发生问题出在环境变量配置前面没有加 .;


PATH=.;%JAVA_HOME%\bin
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar;
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_73


 



于是将这个 .; 加上之后关掉重启命令行控制台,解决了。


参考资料:

http://www.cnblogs.com/yinxiangpei/articles/2456123.html


运行 Java 程序时遇到 **“不到无法加载”** 错误(例如 `Error: Could not find or load main class Welcome`),通常由以下几个原因引起: ### 1. 名与文件名不匹配 Java 编译器要求源代码文件中的公共名必须与文件名完全一致,包括大小写。例如,如果名为 `Welcome`,则文件必须命名为 `Welcome.java`。若文件名拼写错误大小写不一致(如 `welcome.java` `Welcome.jav`),将导致编译成功但运行时报错[^1]。 ### 2. 编译后未生成 `.class` 文件 使用 `javac Welcome.java` 命令进行编译后,应生成对应的 `Welcome.class` 文件。若目录中没有该文件,可能是因为编译过程中存在语法错误路径问题。请检查编译命令是否正确执行,并确保当前目录下存在 `Welcome.class` 文件[^2]。 ### 3. 执行命令格式错误 运行 Java 程序时,应使用 `java` 命令并指定完整的名(不带 `.class` 扩展名)。例如: ```bash java Welcome ``` 如果错误地使用了 `java Welcome.class`,则会提示不到。 ### 4. 包声明与目录结构不匹配 如果源文件中包含包声明(如 `package com.example;`),则必须确保文件位于对应的目录结构中(如 `com/example/Welcome.java`),并且在运行程序时从包的根目录开始执行。例如: ```bash java com.example.Welcome ``` 否则,Java 运行无法正确定位文件[^2]。 ### 5. 环境变量配置问题 确保系统已正确配置 `JAVA_HOME` 和 `PATH` 环境变量。可以通过以下命令验证 Java 是否安装正确: ```bash java -version javac -version ``` 如果命令未被识别,则需重新配置环境变量。 ### 6. 文件扩展名隐藏问题 在 Windows 系统中,某些文本编辑器(如 Notepad)可能会自动将文件保存为 `.txt` 格式,即使文件名显示为 `Welcome.java`,实际可能是 `Welcome.java.txt`。建议使用命令行工具(如 `dir`)查看真实文件名,并重命名为正确的 `.java` 格式[^2]。 ### 示例:完整编译与运行流程 假设文件 `Welcome.java` 内容如下: ```java public class Welcome { public static void main(String[] args) { System.out.println("Welcome to Java"); } } ``` #### 编译: ```bash javac Welcome.java ``` #### 运行: ```bash java Welcome ``` #### 输出结果: ``` Welcome to Java ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值