Java问题-错误: 找不到或无法加载主类


屈贾谊与长沙,非无圣主;窜梁鸿与海曲,岂乏明时? 王勃—《滕王阁序》


错误: 找不到或无法加载主类

这个问题大多数是因为没有配置好java环境变量引起的,

JAVA_HOME  C:\Program Files\Java\jdk1.8.0_91

CLASSPATH  .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar

Path  %JAVA_HOME%\bin

编译成功,运行失败

这里写图片描述

由于package 引起的问题

删除package

如果从其他地方复制过来的java文件,引入了package,但是.java和.class文件本来就在同一目录下,删除package就能运行成功

起因

由于Eclipse运行不了使用 Console 的程序,会抛出java.lang.NullPointerException异常

Console cons = System.console();//cons为空

所以我把程序放到windows中cmd中运行,结果:
javac 可以编译成功
java 提示找不到或无法加载主类

package com.console;
import java.io.Console;
public class ConsolePw {
    public static void main(String[] args) {
    .
    .
    }
}

发现是引入包名-package com.console;的原因,把包名删除就能运行。

加入包名运行也不行

java com.console.ConsolePW 
//也运行不了,因为.java.class文件本来就在同一目录
### Java命令行环境配置问题 当遇到`java -version`命令返回“不到无法加载”的错误时,这通常不是由该命令本身引起的。实际上,`java -version`用于显示安装的JDK版本信息,并不应该涉及到任何特定的Java应用程序[^1]。 然而,在某些情况下,这种异常可能暗示着更广泛的环境变量设置不当的问题。具体来说: - **PATH环境变量**:确保JAVA_HOME已正确定义并且指向有效的JDK安装目录;同时确认%JAVA_HOME%\bin被加入到了系统的Path路径中[^2]。 - **CLASSPATH环境变量**:虽然对于简单的命令如`java -version`而言并不需要特别设定CLASSPATH,但如果此值存在且不正确,则可能会干扰其他Java操作。因此建议暂时移除简化CLASSPATH定义来排除潜在冲突[^3]。 为了验证并修正上述可能性之一所导致的问题,可以尝试以下方法: #### 验证当前环境变量设置 ```bash echo %JAVA_HOME% echo %PATH% ``` #### 测试是否能够正常调用编译器和解释器 ```bash javac -version java -version ``` 如果以上测试均能成功完成而未抛出异常,则表明基本的工具链是可用的。此时应重点排查是否存在多余的CLASSPATH其他自定义脚本影响了默认行为。 另外值得注意的是,从描述来看,“不到无法加载 version”这样的报错消息似乎不太符合标准格式,常规上应该是似于“Error: Could not find or load main class xxx”,其中xxx代表具体的名而非保留字“version”。 综上所述,最有可能的情况是因为环境配置上的失误造成了误导性的错误提示。调整好相应的系统属性之后再试一次应该就可以得到预期的结果了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值