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

1.由于是在运行阶段出现的问题,那么可能是环境变量配置不当的问题,即可能是classpath路径配置错误,而导致.class文件无法加载。

那么此时你可以检查是否配置好classpath路径,一般来说classpath路径配置如下:

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

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

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

比如说如下测试代码:

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

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

这个时候要注意,之所以找不到,是因为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把包名当成文件夹处理,"包名+类名"相当于"文件夹目录+类名"来寻找类。

posted @   熊猫Panda先生  阅读(8483)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示