java运行显示“找不到或无法加载主类”!

发布网友 发布时间:2022-04-23 03:33

我来回答

15个回答

热心网友 时间:2022-04-08 22:23

该如何解决呢?解决办法如下:

1.由于是在运行阶段出现的问题,那么可能是环境变量配置不当的问题,即可能是classpath路径配置错误,而导致.class文件无法加载。那么此时你可以检查是否配置好classpath路径,一般来说classpath路径配置如下:

.;%java_home%\lib;%java_home%\lib\tools.jar; (注意前面的 . 以及 ; 缺一不可)

其中.表示当前路径,;表示分隔符。

2.如果你试过了很多次,classpath也配置对了,依旧出现这个错误,注意你使用的测试代码,是否在某一个包名的下面;

比如说如下测试代码:

在文件所在的当前目录下,运行javac TestPlusPlus.java编译成功,生成TestPlusPlus.class文件,这个时

候,你用javaTestPlusPlus想运行程序,总会出现”找不到或无法加载主类“的错误。这个时候要注意,

之所以找不到,是因为TestPlusPlus在HelloWorld包名的下面。

解决办法:

1.去掉 ”package HelloWorld;“ 重新用javac 编译TestPlusPlus.java,再运行javaTestPlusPlus就可以了。

2.新建一个包名一样的文件夹,在本例中,为建立一个HelloWorld的文件夹,把TestPlusPlus.java文件移到该目录下。

然后在HelloWorld文件夹的平级下,打开DOS命令窗口,运行javacHelloWorld/TestPlusPlus.java编译程序,

运行javaHelloWorld/TestPlusPlus(或者javaHelloWorld.TestPlusPlus也可以),则可以运行含有包名的java程序。

注意:包名不要含有'.'(点),' '(空格)等特殊符号,这样的话命令行无法判断包名与java程序名的分割点在哪里,

从而还是找到或者无法加载主类。

原理说明:

java程序运行class文件,对于有包名的类,java把包名当成文件夹处理."包名+类名"相当于"文件夹目录+类名"来寻找类。

热心网友 时间:2022-04-08 23:41

我们的工程路径是D:\HelloWorld,在HelloWorld文件夹中建立一个src文件夹,类B的源代码文件就放在src中。用javac编译完以后会在src文件夹中生成NewsManager.class,如下:

2.执行如下:

3.现在我们再把源代码换成类A。

4.类A中package的路径是org.will.app.main。按照java规定,我们应该按照package定义的路径来存放源文件,类A应该放入:

src\org\will\app\main下,如下:

5.然后我们编译执行:

6.依然有问题,为什么,其实大家再回去看看java的书籍就会发现,一个类的全名应该是包名+类名。类A的全名:org.will.app.main.NewsManager。再试试:

7.仔细看上面的图,我们在main目录下让java命令去执行org.will.app.main.NewsManager,其实它会以为类的路径是:D:\HelloWorld\src\org\will\app\main\org\will\app\main\NewsManager,大家看到了吧,路径重复了。所以,我们应该这样执行:

热心网友 时间:2022-04-09 01:16

你这个执行失败的原因是文件名与类名不一致,你的文件名是Untitled1,类名都没有起

可以把类名也叫Untitled1就OK了

public class Untitled1{
public static void main(String[] args) {
System.out.println("hiiiiiiiiiiiii");
}
}

热心网友 时间:2022-04-09 03:07

环境变量配置:

JAVA_HOME:D:\Java\jdk1.8.0_91

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

Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

解决:

1.把package语句去掉

例如将java文件的package去掉

2.不去掉package,在java文件同级目录加一个package相同名称的文件夹;

HelloWorld.java在src的j2se001文件夹下,j2se001下建一个同package名称的文件夹

或者下面这种,在java类文件同级目录建一个同package名称相同的文件夹

热心网友 时间:2022-04-09 05:15

我这是最好的方法,不用再纠结class path了。

采用方法:直接把CLASSPATH删掉,不用非得写成这个样子.;%java_home%\lib;%java_home%\lib\tools.jar;

记得修改以后必须要**重启cmd**,每次外部的更改,都必须重启cmd以后才会显示

热心网友 时间:2022-04-09 07:40

第一,这个程序是没有错。
第二,你的类名是“Test”,但是你的java文件名就应该是“Test.java”。
第三,在运行里输入cmd敲回车建进入一个控制台的命令框,请输入javac回车查看java有没有
安装好,如有问题有两种肯能:一是根本就没有安装java程序或者安装时没有正确安好,
二是环境变量没有配好。
第四,环境变量配置,变量名Path的值应该是:D:\Program Files\Java\jdk1.7.0\bin
把这个路径放最好放到最前面用;号与其它隔开
变量名CLASSPATH的值是 .; 就这样就可以(当然如果你要用到其它jar包就要配置)
变量名JAVA_HOME的值是 D:\Program Files\Java\jdk1.7.0
第五,编译和运行程序,如果你的Test.java放在D盘根目录下,在运行里输入cmd敲回车建进
入一个控制台的命令窗口,敲“D:”回车,输入javac Test.java 回车,再输入java Test 回车。就这样搞定。
最后,我上次碰到一位朋友和你遇到同样的问题,jdk版本和你用的一样,但是我没有用过1.7版本
后来是他加了我的QQ通过远程连接我帮他弄好了,我发现他有这么几个问题:1.存放java的文件夹名有中文(用中文也可以,不过个人认为最好还是用英文命名文件夹名称)。2.他的path变量配置有多个java的路径,而且没有提前。也就是说:path:D:\Program Files\Java\jdk1.7.0\bin;这项放在最前面。3.因为1.7的版本我没有用过所以我叫他换成了1.6的版本(如果你需要我可以发给你)

希望对你有帮助!

热心网友 时间:2022-04-09 10:21

程序本身没有问题,应该是楼主的路径不对吧

先把路径调好

d盘的就打d: e盘就打e:

然后cd到你的目录

比如 cd theOther

然后再

javac Test.java

 java Test

热心网友 时间:2022-04-09 13:19

除了上述大家讲的原因,我遇到的是这个——文件名的字母是区分大小写的

!!!

热心网友 时间:2022-04-09 16:34

建议你下载个eclipse软件,地址如下:

网页链接

这样当你新建一个类时,软件会自动完成类的定义部分。如图:

希望能帮到你!

热心网友 时间:2022-04-09 20:05

是 

D:\IBAS-BING\java> java HelloWorld

运行的时候,不要加后缀.class

热心网友 时间:2022-04-09 23:53

环境变量的配置有问题,你改改吧:
HOME是 D:\Java\jdk1.8.0_11
Path是 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
CLASSPATH是 .;%JAVA_HOME%lib;%JAVA_HOME%lib\tools.jar

path和CLASSPATH里面的内容不能变,要按照这个来。home才指的是你安装jdk的路径

热心网友 时间:2022-04-10 03:58

编译好的class文件在 c:\users\Python\DeakTop下边,当时你的dos根目录在c:\users\Python,所以程序找不到你的class文件,你先执行 cd DeakTop 回车,在运行java HelloWorld

热心网友 时间:2022-04-10 08:19

1、环境变量没配置好,请正确配置下,并在后面加上分号(;)即可。
2、带main方法的类请加上public声明,基础不过关。
3、文件名请与类名保持一致。(这是你现在错误的原因,请把1改为HelloWorld)

有问题欢迎提问,满意请采纳,THX!

热心网友 时间:2022-04-10 12:57

楼主CLASSPATH环境变量设置有问题。应该设置成当前目录加bin目录如下:.;\%JAVA_HOME%bin
注意那个点和分号,楼主肯定是少了当前目录,就是那个点。

热心网友 时间:2022-04-10 17:52

直接上图,这是有package 的情况

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com