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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在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文件了

参考技术A

有两种办法:

(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命令错误: 找不到或无法加载主类

参考技术B 你是否在运行cmd之后才改的classpath环境变量?这样需要重启cmd的。 参考技术C 对于class文件,应该是javac hello 参考技术D 类名首字母最好大写Hello

在CMD下运行编译过的java文件,用java命令出现“找不到或无法加载主类”问题

网上说啥的都有,在此我总结了一下,然后我最近遇到的一种情况网上好像没人遇到过,在此贴出来

1,环境变量,一般能编译文件,那就不是环境变量的额问题

2,未加包名,比如aaa包下面的hello.java   编译过后hello.class    运行时要这样写java  aaa.hello

3,也是我遇到的一种情况,文件路径当中有中文,后来把文件夹名字改成英文名就解决了。

以上是关于在CMD下用java命令出现“找不到或无法加载主类”问题的主要内容,如果未能解决你的问题,请参考以下文章

在CMD下运行编译过的java文件,用java命令出现“找不到或无法加载主类”问题

Java 命令行运行java程序,出现“找不到或无法加载主类 ”的注意事项

编译没问题,cmd下运行java类文件时,提示:找不到或无法加载主类

运行Java cmd程序 找不到或无法加载主类怎么解决

java找不到或无法加载主类

命令java 找不到或无法加载主类