Java文件编译成功后的class文件无法执行

34 篇文章 0 订阅
19 篇文章 0 订阅

当时的具体情况是这样的:java文件所在的package为com.fx.s1,当时的命令行所在路径为 xx:\xxx\src\com\fx\s1\_ 


我就是在此路径下先执行:javac Test1.java,运行成功,成功在当前路径产生Test1.class文件,编译成功。


当我在此路径下继续执行:java Test1 ,结果就是NoClassDefFoundError。


当时百思不得其解,环境变量的CLASSPATH设置成功,没有问题。那只有可能是命令行的问题。


改变执行命令,在class文件明前加package名称,即:java com.fx.s1.Test (注意:当前执行命令的路径还是之前的路径,没有变),执行结果:错误: 找不到或无法加载主类 com.fx.s1.Test1.


郁闷,在分析:java命令执行时,按照classpath配置情况看,是从当前目录下,加载文件的。所以如果我在com/fx/s1的目录下,在执行class文件,JVM会从新在当前目录下继续找package,所以有问题。


在改变一下,命令不变,改变路径,将命令执行路径退回到之前路径的src下,即:xx:\xx\src。在此路径下继续执行:java com.fx.s1.Test1.


执行成功。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值