You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何运行包含多个公有类的Java包?运行com.choice包报ClassNotFoundException

报错核心原因

java.lang.ClassNotFoundException异常的本质是JVM无法按照包声明的路径找到对应的class文件:带package com.choice;声明的类,全限定类名为com.choice.ShopApp,JVM会默认到当前路径下的com/choice目录中查找ShopApp.class,你直接用javac *.java编译生成的class文件都在当前根目录,不符合包结构要求,自然找不到类。

正确操作流程

1. 源文件校验

确保ShopApp.java、Customer.java、Clothing.java三个文件的首行都有正确的包声明:

package com.choice;

2. 编译命令

不需要手动创建包目录,直接在三个源文件所在的目录执行以下编译命令即可:
javac -d . *.java
参数说明:-d用于指定编译生成的class文件的根目录,.代表当前目录,javac会自动按照包声明生成com/choice层级目录,并把对应class文件放到该目录下。

3. 运行命令

要在com文件夹所在的根目录执行,必须写类的全限定名,不能加.class后缀:
java com.choice.ShopApp
如果仍然报错,可以手动指定classpath为当前目录:
java -cp . com.choice.ShopApp

禁止的错误操作

  • 不要进入com/choice目录下执行java ShopApp
  • 不要写成java com.choice.ShopApp.class

内容的提问来源于stack exchange,提问作者ShriBo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:45:04