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

Java子文件夹中类的正确编写方式及package报错排查

问题分析与解答

一、报错原因

当你在test.java里加上package own;后,这个类的全限定类名就变成了own.test,不再是单独的test。而你之前运行时大概率是在project/src/own/目录下执行java test命令——这时候Java会在当前目录找名为test的类,但你的类属于own包,必须从包的根目录(也就是project/src/)出发,用全限定名运行:

# 先切换到project/src目录
cd project/src
# 用全限定类名运行
java own.test

VSCode自动生成package own;是遵循Java的约定:包名必须和文件所在的目录结构对应——src/own/这个目录就对应own包,这样能保证类的路径和包结构一致,避免编译和运行时的路径问题。

二、package own的作用

  • 避免类名冲突:如果两个开发者都写了Test类,只要放在不同包下(比如own.Test和com.example.Test),Java就能通过全限定名区分它们,不会出现命名冲突。
  • 结构化组织代码:把功能相关的类放在同一个包下,比如把所有工具类丢进utils包,业务逻辑类丢进service包,方便后期维护和查找。
  • 控制访问权限:Java的默认访问权限(不写public/protected/private)只允许同一个包下的类访问,用包可以实现同一模块内的代码共享,同时对外隐藏内部细节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:03:26