如何解决Java编译运行时提示‘class not found wrong class name’的错误?
解决Java包声明导致的类找不到问题
问题原因
你的代码声明了包hello_project,编译后的.class文件必须放在与包名对应的目录结构中,且运行时需要使用**全类名(包名+类名)**执行,而不是直接用类名。直接运行java Hello能生效是因为Java 11及以上版本支持单文件源代码运行模式,该模式会自动处理包结构,但编译后必须遵循标准Java包规则。
正确操作步骤
- 第一步:创建对应目录结构
在当前目录下新建一个名为hello_project的文件夹,将Hello.java移入该文件夹。 - 第二步:编译代码
回到hello_project所在的上级目录,执行编译命令:
执行后,javac hello_project/Hello.javahello_project文件夹内会生成Hello.class文件。 - 第三步:运行程序
同样在上级目录,使用全类名执行运行命令:java hello_project.Hello
替代快速操作方式(无需手动建目录)
如果不想手动创建目录,可以用javac的-d参数指定输出目录,自动生成包结构:
javac -d . Hello.java java hello_project.Hello
-d .表示将编译后的class文件输出到当前目录,会自动创建hello_project目录并放入Hello.class。
内容的提问来源于stack exchange,提问作者Farhan Adib
相关产品推荐
相关产品推荐

