java编译成功,但运行失败,即错误: 找不到或无法加载主类 原因: java.lang.ClassNotFoundException:

本文详细介绍了Java环境变量的配置方法,包括PATH和CLASSPATH的设置,并解释了这两个变量对于Java程序编译和运行的重要性。此外,还提供了如何正确设置CLASSPATH以便在不同目录下编译和运行Java程序的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:如果修改了环境变量,cmd需要重新打开

编译:javac xxx.java(利用cmd编译,必须在java文件对应目录下执行编译命令)

运行:java xxx(不带后缀,运行之前会先查找是否有对应编译好的文件,没有会自动先编译生成class文件再运行) 

  1. 如果java文件能够编译成功,说明环境变量path没有问题
  2. 查看环境变量是否有classpath,以及要确保classpath的路径是准备运行的.class文件的位置,如果不符合,这就是程序出错的原因。

           classpath的作用:classpath不是操作系统的变量,而是java的变量,顾名思义,它是用于在java编译和运行时告知类的路径,当我们在cmd执行“运行”操作:java Xxx 时,java程序会将classpath作为根路径,寻找名为Xxx的.class文件,如果你要运行的文件不在classpath指定路径下(在classpath路径的包里也不行,必须在classpath路径下),就会报错。先理解原理,如果是这个原因保存也可以直接看序号(4)

           注意:这个错误是找不到运行的文件,还有另一种情况会提示做不到导入的文件错误,转到序号(3)

  3. 序号1和2都没问题,如果报错提示准备运行的文件找不到import(引入)的类,这是由于引入的类不在classpath下。例如下面的文件:

           要执行的文件为LibTest.java,创建的Vector对象的类在com.mindviewinc.simple包里。LibTest.java编译和运行时java程序会将classpath作为根路径,先寻找名为LibTest的文件,然后找导入的类文件,看classpath指定路径+com.mindviewinc.simple位置下是否有Vector,没有则报错。那如何合理的设置classpath?通常设置为大包所在的位置就行,本例中com所在的位置,如下图:这样创建的其他包也可以放在OnJava8-Examples下,结构清晰。

  4. 由于我们要经常编写多个文件运行,他们可能在不同位置,这意味着对应的.class文件也不在一起(.java文件和编译后的.class文件默认生成在同一目录下),那如何配置classpath,让cmd可以轻松知道要运行的.class文件位置在哪呢?或者说如何通过cmd编译.java文件后可以直接运行呢?将classpath=.        .代表当前目录,因为我们每次使用cmd通常情况下编译后运行,由于设置了运行后寻找文件的位置是当前目录,而当前目录正是.java所在的位置,也就是.class的位置。

上面添加后双击就是如下效果

 如果对您有帮助,还请点赞收藏呀!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值