搜索
您的当前位置:首页正文

Java环境变量设置后,编写第一个程序报错:找不到或无法加载主类 D:\java\HelloWorld

来源:步旅网

Java 环境变量配置完后,按照网上说的办法测试都成功了,但在写第一个HelloWorld程序时,编译通过了,运行时报“找不到或无法加载主类 D:\java\HelloWorld”错误。

网上解决办法

编程时习惯地认为一个执行命令后面一般跟的是一个文件,所以地敲入

javac D:\java\HelloWorld.java
 
 
  • 1

发现没有报错,相应文件下生成了HelloWorld.class文件,说明编译成功,兴奋之余,接着很自然地敲入

 java D:\java\HelloWorld.class 
 
 
  • 1

接着就报了上面图片中的错误,开始在网上搜,大部分解释是环境变量配错了,重新配置环境变量

  • 有的说应该去掉.class 后缀
java D:\java\HelloWorld
 
 
  • 1
  • 有的说直接执行
java HelloWorld
 
 
  • 1
  • 还有的说“CLASSPATH值的最后没;(分号)会出现以下错误:错误:找不到或无法加载主类HelloWorld。”

  • 还有一种说法是“java HelloWorld 时,字母大小写搞错也出错”

结果试了各种办法无解,有种想把电脑摔了的冲动,最后认真看了一下javac和java命令帮助文件,联想一下编译知识才恍然发现自己犯了一个特别低级的错误。

原因

Java编译原理不理解,写程序不认真

javac是个编译器,它的用法:

javac <options> <source files>
 
 
  • 1

而java命令程序则是一个解释器,它的作用是把编译后生成的class文件解释成机器能够识别的机器码,并最终由运行环境中的Runtime对代码进行运行,真正实现我们想要机器完成的工作。从截图的帮助文档中我们看到它要执行的是类,是一个和class文件名字完全相同(大小写也要一样)的类

  • 通过 ClassLoader 寻找和装载 class 文件
  • 解释字节码成为指令并执行,提供 class 文件的运行环境
  • 进行运行期间垃圾回收
  • 提供与硬件交互的平台

解决办法

小结

  • 原理性的知识不可忽视,需要在实践中不断理解,达到融会贯通;
  • 做什么事情都要认真,很多错误都是不认真造成的。

原文链接:

因篇幅问题不能全部显示,请点此查看更多更全内容

Top