在CMD下用java命令出现“找不到或无法加载主类”问题

写了简单的hello.java程序,在cmd命令行下用javac hello.java命令编译没有问题,可以生成hello.class文件。但输入java hello命令后(文件目录和命令目录一致),提示错误:“找不到或无法加载主类”。
public class hello{ public static void main(String[] args){ System.out.println("Hello World!"); }}
另外环境设置是这样的:
JAVA_HOME D:\Java\jdk1.0.8
CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
PATH %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

求大大们告知究竟哪里出了问题。。。

package是hellojava吧?那如果在E:/Workspace/hellojava/src/hellojava这目录下运行,应该
这样写: java -cp ../ hellojava.hello
或者用绝对路径: java -cp E:/Workspace/hellojava/src hellojava.hello

追问

绝对路径的确运行的出来!
只是我还想知道原来那样写究竟哪里出了问题呢?
因为是新手,所以我想知道到底错在哪里,不然以后可能也会错...

是不是应该在java后面跟package名呢?
然后应该写成E:/Workspace/hellojava/src>java hellojava.hello 这样吗?

追答是的,运行的时候要加上package的。
参数-cp(-classpath)的意思是 会在-cp指定的位置找你要运行的class文件,比如你这个:
java -cp E:/Workspace/hellojava/src hellojava.hello
hellojava.hello这个你可以看做是hellojava/hello.class,
所以它就会在E:/Workspace/hellojava/src/hellojava目录下找你这个hello.class文件了

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-10-28

有两种办法:

(1)把java类上的package去掉,直接运行命令java hello

//package com.tt.demo;//去掉

public class hello {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

(2)如果保留带有package的原代码不改,则在java目录下运行java命令。如

hello.java在我本地硬盘上目录: E:\myemo(项目名)\src\main\java\com\tt\demo 下

javac目录运行成功后,切换到目录E:\myemo(项目名)\src\main\java下,运行命令:

java com.tt.demo.hello

package com.tt.demo;

public class hello {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}


参考:java命令:java命令错误: 找不到或无法加载主类

第2个回答  2014-03-28
你是否在运行cmd之后才改的classpath环境变量?这样需要重启cmd的。
第3个回答  2014-03-28
对于class文件,应该是javac hello
第4个回答  2014-03-28
类名首字母最好大写Hello

在CMD下用java命令出现“找不到或无法加载主类”问题
package是hellojava吧?那如果在E:\/Workspace\/hellojava\/src\/hellojava这目录下运行,应该这样写: java -cp ..\/ hellojava.hello或者用绝对路径: java -cp E:\/Workspace\/hellojava\/src hellojava.hello

java运行显示“找不到或无法加载主类”怎么回事?
1. 类路径问题:Java通过类路径来查找用户想要运行的类文件。如果类路径设置不正确,或者包含主类文件的目录没有被包含在类路径中,就会出现这个错误。确保在运行Java命令时,通过-cp或-classpath选项正确设置类路径。2. 文件名和类名不匹配:Java要求源代码文件的名称必须与公共类的名称相匹配。如果文件...

java运行显示“找不到或无法加载主类”!
1. 类路径问题:Java运行程序时,需要通过类路径来找到需要运行的类文件。如果类路径设置不正确或者不包含需要运行的类文件,就会出现这种错误。检查你的类路径设置是否正确,确保包含了所有需要的类文件和依赖。2. 编译问题:如果你尝试运行的是一个Java源文件,而没有先将其编译成字节码文件,也会出现...

java找不到或无法加载主类代码怎么办?
1、类路径问题:确认CLASSPATH环境变量是否包含了你的类文件所在的目录。如果是在命令行下运行,可以手动添加到CLASSPATH中,例如:set CLASSPATH=.;yourpath。如果使用的是IDE(如IntelliJ IDEA, Eclipse等),确保项目构建路径设置正确。2、主类名称错误:检查你在命令行中输入的类名是否正确,注意大小写...

找不到或无法加载主类什么意思
Java显示找不到或无法加载主类是意思是因为classpath配置错误所以无法加载。是环境变量的问题,建议查看path和classpath是否是正确的。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向...

java运行显示“找不到或无法加载主类”!
1.由于是在运行阶段出现的问题,那么可能是环境变量配置不当的问题,即可能是classpath路径配置错误,而导致.class文件无法加载。那么此时你可以检查是否配置好classpath路径,一般来说classpath路径配置如下:.;%java_home%\\lib;%java_home%\\lib\\tools.jar; (注意前面的 . 以及 ; 缺一不可)其中....

java运行显示“找不到或无法加载主类”怎么回事?
遇到"找不到或无法加载主类"的Java运行问题,通常需要从以下几个方面排查:首先,检查环境变量配置,确保classpath路径正确。默认配置如下:.;%java_home%\\lib;%java_home%\\lib\\tools.jar;确保"."表示当前路径,分号";"是必需的。如果classpath已设置,但问题依旧,可能是代码包名结构导致的。在编写...

在命令行窗口编译.java时出现错误找不到或无法加载主类
可能原因一:java类中没有main方法。必须有下面的main方法执行入口才可以:public static void main(String[] args) { } 可能原因二:说明当前的路径不是java文件存放路径。解决办法:第一步:在cmd上通过cd进入相应java类路径。如(cd D:\\Remit\\icardpay-boss);第二步:直接输入盘符即可完成路径...

java 找不到或无法加载主类
当我们尝试使用java命令运行字节码文件时,可能遇到提示“找不到或无法加载主类”的错误,那么要如何解决呢?首先,值得注意的是类名不要附加.class后缀,否则会引发此问题。接着,要确认待执行类是否已有包名。如无包名,只需在类文件所在的目录下,直接使用“java 类名”命令即可。若类文件带有包名,...

Java 错误:找不到或无法加载主类
当你在尝试运行Java程序时遇到"找不到或无法加载主类"的错误,首先要明确,这并不意味着程序本身存在问题。问题可能出在Java文件命名和路径配置上。首先,确保Java文件的命名规则:类名应该是"Test",而文件名应该是"Test.java"。其次,检查Java环境是否安装并配置正确。在命令提示符中输入"javac"并回车...

相似回答