java运行显示“找不到或无法加载主类”怎么回事?

环境:path:D:\ProgramFiles\Java\jdk1.7.0\binclasspath:D:\ProgramFiles\Java\jdk1.7.0\lib\... 环境:path:D:\Program Files\Java\jdk1.7.0\bin
classpath:D:\Program Files\Java\jdk1.7.0\lib\tools.jar;D:\Program Files\Java\jdk1.7.0\lib\dt.jar
运行文件:public class Test
{
public static void main(String[] args)
{
System.out.println("Hello Word");
}
}
cmd命令:javac Test.java(编译成功)
java Test(结果出来:“错误:找不到或无法加载主类 Test”)
展开
 我来答
后潇潇洒洒过一生cG
推荐于2019-09-30 · TA获得超过223个赞
知道答主
回答量:134
采纳率:0%
帮助的人:38.9万
展开全部
第一,这个程序是没有错。
第二,你的类名是“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的版本(如果你需要我可以发给你)

希望对你有帮助!
tomtiantao
2018-08-23 · TA获得超过935个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

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

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把包名当成文件夹处理."包名+类名"相当于"文件夹目录+类名"来寻找类。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友54ae405a37
2019-10-07 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:31.5万
展开全部
加上主类
public static void main(String[] args) {

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bec66c6
2019-10-07 · TA获得超过1008个赞
知道小有建树答主
回答量:3930
采纳率:48%
帮助的人:317万
展开全部

展开全部

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

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

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

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

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

  5. 比如说如下测试代码:

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

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

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

  9. 解决办法:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式