2024年3月20日发(作者:)
java 找不到或无法加载主类XXX
使用命令行运行Java文件时,有时会提示错误“找不到或无法加载主类XXX”,这里
涉及到三个可能的原因:
(1)java是环境变量JAVA_HOME、CLASSPATH、Path没有正确配置。
(2)命令行所在目录和Java文件所在目录不同。
(3)定义了包名的类,需要特殊处理
1.原因(1)的解决方法
在网上有很多配置Java环境变量的解决方法,原理都是一样的,这里就不再详述;
2.原因(2)的解决方法
当命令行所在目录和Java文件所在目录不同时,一定要给出Java文件的完整路径名称!
例如:在D盘根目录下编写一个文件,那么的完整路径名称为
D:。
1.打开命令行,执行javac ,报错“javac:找不到文件:”,这是因
为命令行的目录为C:UsersAdministrator,与的目录不同,命令行javac从它的当
前目录找不到。
2.将命令行切换到D盘根目录下,执行javac ,此时没有报错,说明编译成
功,然后再执行java Hello,程序成功运行。当Java文件和命令行在同一目录下时,直接输
入Java文件名称,即可成功运行。
3.那么如何在不同的目录下成功运行Java文件呢?解决方法:当Java文件和命令行
在不同目录时,编译时输入Java文件的完整路径名称;执行时,因为classpath指定了Java
类的执行路径,Java类只有包含在classpath路径下才能被java命令识别,有如下两种方法:
(1)通过set classpath命令设置Java类的临时执行路径
(2)在系统环境变量classpath后面加上;d:;,表示搜索Java类时会从d盘目录搜索
需要注意classpath在编译时是不起作用的,所以在目录不同时,无论有没有配置
classpath路径,javac命令后面都要输入Java文件的完整路径名称。
3.原因(3)的解决方法
当类的定义中包含包时,例如类Hello定义了包:package ;包实际上就是
文件夹,定义包就是将文件放入duomudemo目录下,然后通过命令行编译
文件时需要将命令行目录切换到所在的目录,而执行文件时,
需要将命令行目录切换到Hello类所属包duomudemo的上级目录,方可运行成功;否则会
提示“找不到或无法加载主类Copy”
The furthest distance in
the world
Is not between life and death
But when I stand in front of you
Yet you don't know that
I love you.
The furthest distance in the world
Is not when I stand in front of you
Yet you can't see my love
But when undoubtedly knowing the love from both
Yet cannot be together.
The furthest distance in the world
Is not being apart while being in love
But when I plainly cannot resist the yearning
Yet pretending you have never been in my heart.
The furthest distance in the world
Is not struggling against the tides
But using one's indifferent heart
To dig an uncrossable river
For the one who loves you.
倚窗远眺,目光目光尽处必有一座山,那影影绰绰的黛绿色的影,是春天的
颜色。周遭流岚升腾,没露出那真实的面孔。面对那流转的薄雾,我会幻想,那
里有一个世外桃源。在天阶夜色凉如水的夏夜,我会静静地,静静地,等待一场
流星雨的来临…
许下一个愿望,不乞求去实现,至少,曾经,有那么一刻,我那还未枯萎的,
青春的,诗意的心,在我最美的年华里,同星空做了一次灵魂的交流…
秋日里,阳光并不刺眼,天空是一碧如洗的蓝,点缀着飘逸的流云。偶尔,
一片飞舞的落叶,会飘到我的窗前。斑驳的印迹里,携刻着深秋的颜色。在一个
落雪的晨,这纷纷扬扬的雪,飘落着一如千年前的洁白。窗外,是未被污染的银
白色世界。我会去迎接,这人间的圣洁。在这流转的岁月里,有着流转的四季,
还有一颗流转的心,亘古不变的心。


发布评论