org和com是Java包命名中沿用互联网域名语义的非强制前缀:com对应商业组织,如com.google.gson;org对应非营利组织,如org.junit.jupiter;选择依据是项目归属与维护主体性质而非法律注册状态。

Java 包命名中 org 和 com 是两种常见顶级域名前缀,本质区别在于它们对应的不同组织类型和命名惯例,并非 Java 语言强制规定,而是沿用互联网域名体系的语义约定。
com 表示商业组织(commercial)
源自英文 “commercial”,对应互联网域名中的 .com,通常用于公司、企业、商业产品或开源项目背后的营利性实体。
- 例如:
com.google.gson(Google 公司开发的 Gson 库) -
com.fasterxml.jackson.core(FasterXML 公司主导的 Jackson 项目) - 包名体现“谁拥有/主导”:一般指向注册了对应域名的商业主体
org 表示非营利组织(organization)
源自英文 “organization”,对应 .org 域名,常用于开源社区、基金会、行业协会、教育机构等非营利性质的组织。
- 例如:
org.junit.jupiter(JUnit 由 JUnit 团队维护,属开源社区项目) -
org.apache.commons.lang3(Apache 软件基金会是典型的非营利组织) -
org.springframework.boot(Spring Framework 由 Pivotal(后被 VMware 收购)发起,但 Spring 生态长期以 org.springframework 为官方包名,体现其社区与技术中立定位)
实际使用中更看重归属与一致性
是否用 com 还是 org,关键不在于组织是否真的注册了域名,而在于项目公开宣称的归属、维护主体性质,以及历史延续性。
立即学习“Java免费学习笔记(深入)”;
- 个人开源项目常用
org.example或com.github.username,其中com.github是借用 GitHub 的商业域名属性,org.example是规范占位符 - 很多大厂内部项目虽属商业公司,仍沿用
org.springframework或org.eclipse风格,强调技术品牌独立于母公司 - Java 官方 API(如
java.util、javax.swing)不用com/org,因其属于平台核心,无需按组织归类
命名建议
对外发布的库或框架,推荐按实际维护主体性质选择:
- 公司主导、有明确商业品牌 → 优先
com.companyname - 社区驱动、基金会托管、强调开放中立 → 优先
org.projectname - 避免混用:同一组织下所有子项目应保持前缀统一(如全用
com.alibaba,不要部分用org.alibaba) - 小团队或个人项目可直接用
com.github.xxx或io.github.xxx(io是近年流行的替代前缀,无特定组织含义,但简洁通用)


















