Java文件编译成功后的class文件无法执行
2014-08-22 22:33
267 查看
平时用惯了Eclipse,今天偶尔在命令行界面想做一个Demo,测试一段代码。原本以为javac一下,java一下就可以得到自己想要的结果,可是结果大跌眼镜,自己被一个问题卡主了:java文件成功编译,但当运行编译后的class文件却报一个异常:NoClassDefFoundError。
当时的具体情况是这样的: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.
执行成功。
当时的具体情况是这样的: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.
执行成功。
相关文章推荐
- 关于命令行中javac 编译成功,用 java 运行 class 文件出现 “ 找不到或无法加载主类 ” 的问题
- javac编译成功,用java运行class文件出现“找不到或无法加载主类” 的问题
- javac编译成功,用java运行class文件出现“找不到或无法加载主类” 的问题解决起来很简单
- 使用cmd编译java文件成功生成class,但是不能执行
- java能够进行编译但无法执行.class文件,会提醒无法加载主类
- javac编译成功,用java运行class文件出现“找不到或无法加载主类” 的问题
- javac编译成功,用java运行class文件出现“找不到或无法加载主类” 的问题
- javac编译成功,用java运行class文件出现“找不到或无法加载主类”
- javac编译成功,用java运行class文件出现“找不到或无法加载主类” 的问题解决起来很简单
- cmd编译执行java文件出现java.lang.ClassNotFound Exception:com.microsoft.sqlserver.jdbc.SQLServerDriver
- 关于java命令行在dos窗口下执行class文件时提示“找不到或无法加载类”问题
- 项目中存在.Java文件却无法编译成相应的.class文件
- 如何将.class文件转换成.java文件——JAVA反编译工具总结[转]
- 如何反编译.class文件为.java文件
- Java中class文件编译成exe文件的几种方法【推荐】
- JAVA文件编译执行与虚拟机(JVM)介绍(转)
- Eclipse无法自动编译出class文件
- Java中class文件编译成exe文件的几种方法
- 用jar命令将java class文件打包以及编写方便执行jar文件的批处理文件
- 如何将java中class文件反编译成java文件