Java添加package后无法找到主类Example问题求助
解决Java包声明后找不到主类的问题
嘿,我太懂你遇到的这个头疼问题了——加了package声明后程序突然跑不起来,查了一堆资料还是没搞定对吧?别着急,这其实是Java包机制的基础要求没踩对,咱们一步步来把它解决:
问题根源
当你给类加上package examples;声明后,这个类的全限定名就变成了examples.Example,不再是单纯的Example了。Java有个硬性规则:类文件的存放目录结构必须和包名完全对应,而且运行时必须使用全限定名来调用,不然JVM根本找不到你的类。
正确操作步骤
创建匹配包名的目录结构
在你的.java文件所在的父目录下,新建一个名为examples的文件夹,然后把Example.java移动到这个examples文件夹里。最终的目录结构应该是这样:父目录/ └── examples/ └── Example.java编译代码
打开命令行,切换到这个父目录(千万别进到examples文件夹里),执行编译命令:javac examples/Example.java执行完后,你会发现
examples文件夹里多了一个Example.class文件——编译后的类文件会自动存放在对应包的目录下,这正是JVM需要的结构。运行程序
还是在父目录下,用全限定类名来运行程序:java examples.Example这时候就能正常输出你要的内容了!
常见误区提醒
- 别在
examples文件夹内部执行运行命令,那样JVM找不到对应的包路径,肯定报错。 - 不需要手动配置复杂的classpath(除非你有特殊需求),只要目录结构和包名对应,并且在父目录下用全限定名运行,默认的classpath就能准确找到你的类。
内容的提问来源于stack exchange,提问作者rusrs
相关产品推荐
相关产品推荐

