在Windows命令提示符运行包内Java编译文件报错怎么办?
如何在Windows命令提示符中运行包内的Java编译文件?
错误原因分析
你当前在D:\eclipse-workspace-ghj2\ExecJava\src\pkg>目录下执行运行命令,Java虚拟机需要从包的根目录(即src目录)查找带包名的类文件,同时编译后的class文件位置与类路径不匹配,导致找不到主类。
正确操作步骤
方式一:规范编译(class文件单独存放)
- 切换到包的根目录(
src目录):cd D:\eclipse-workspace-ghj2\ExecJava\src - 创建用于存放class文件的
bin目录(可选但推荐):mkdir bin - 编译Java文件,指定输出目录到
bin:javac -d bin pkg/Manager_1.java - 运行主类,指定类路径为
bin目录:java -cp bin pkg.Manager_1
方式二:简易编译(class文件与源文件同目录)
- 切换到包的根目录(
src目录):cd D:\eclipse-workspace-ghj2\ExecJava\src - 直接编译pkg目录下的Java文件:
javac pkg/Manager_1.java - 运行主类(此时类路径默认是当前
src目录,能找到pkg包下的类):java pkg.Manager_1
你之前操作的问题点
- 在
pkg目录下执行javac Manager_1.java,编译后的Manager_1.class会留在pkg目录,但运行时仍在pkg目录执行java pkg.Manager_1,JVM会尝试在当前pkg目录下找pkg子目录,自然找不到目标类。 - 必须回到包的根目录(
src)执行运行命令,JVM才能正确识别pkg作为包名,找到对应的class文件。
内容的提问来源于stack exchange,提问作者user7208250
相关产品推荐
相关产品推荐

