使用Code Runner可运行Java代码,但CLI运行失败求助
解决Java包下类编译运行报错问题
错误原因
你的代码声明了package CommandLineApp;,这意味着HelloWorld类的全限定类名是CommandLineApp.HelloWorld。Java要求类文件必须放在与包名对应的目录结构中,且运行时需要使用全限定类名调用。直接在包目录内运行java HelloWorld,JVM会寻找无包声明的HelloWorld类,与实际带包的类不匹配,因此报错。
正确操作步骤
假设你的文件结构是:
上层目录/ └── CommandLineApp/ └── HelloWorld.java
- 切换到包的上层目录(即包含
CommandLineApp文件夹的目录) - 编译代码:
javac CommandLineApp/HelloWorld.java -d .-d .参数会让编译后的.class文件自动生成到对应包结构的目录中(自动创建CommandLineApp文件夹并放入HelloWorld.class) - 运行程序:
java CommandLineApp.HelloWorld
替代方案(已在包目录内编译的情况)
如果已经在CommandLineApp目录内执行javac HelloWorld.java生成了HelloWorld.class:
- 回到上层目录,创建
CommandLineApp文件夹(若不存在) - 将
CommandLineApp/HelloWorld.class移动到新创建的CommandLineApp文件夹中 - 执行
java CommandLineApp.HelloWorld即可运行
内容的提问来源于stack exchange,提问作者Peek0
相关产品推荐
相关产品推荐

