Eclipse新建Java类向导为何不自动填充包名?如何配置默认包?
问题原因说明
原生Eclipse 2021-06 (4.20.0) 默认没有「新建Java项目时自动生成与项目同名的包」的内置逻辑,你观察到其他人生成了同名包通常属于两种情况:
- 对方手动创建包后再新建类,Eclipse会自动填充最近使用过的包名
- 对方使用了自定义项目模板、Spring Tools等第三方扩展插件,自带自动创建同名包的逻辑
你的操作步骤本身没有错误,出现仅能选择默认包的提示,是因为项目创建完成后你没有手动生成任何自定义包,所以Eclipse没有其他包可选。
解决方案
方案1:手动创建包后复用(适合临时测试场景)
操作步骤如下:
- 新建Java项目完成后,在项目的源码文件夹(默认是
src)上右键,选择 新建 -> 包 - 包名按Java规范填写全小写的
quicktest,点击「完成」 - 后续在该项目下新建类时,Eclipse会自动填充包名为
quicktest,无需重复填写
方案2:自定义项目模板实现自动建包(适合长期高频使用场景)
可以通过配置自定义模板实现新建项目时自动生成同名包,操作如下:
- 打开Eclipse菜单栏的 窗口 -> 偏好设置(Mac系统路径为 Eclipse -> 设置)
- 依次展开菜单 Java -> 项目模板
- 点击右侧「新建」按钮,自定义模板名称,比如「带默认包的Java测试项目」
- 按你常用的参数配置项目默认选项:勾选使用默认位置、JRE选择JavaSE-16、项目布局选择「创建独立文件夹」、勾选创建module-info.java
- 点击「添加资源」,选择新建包,包名填写变量
${project_name.toLowerCase},该变量会自动替换为新建项目名的全小写形式 - 保存模板后,后续新建项目直接选择该自定义模板,即可自动生成对应名称的包,省去手动建包步骤
小提示:如果是小型测试项目不需要Java模块功能,新建项目时可取消勾选「创建module-info.java」,操作逻辑更简洁,不会影响包的自动生成规则。
内容的提问来源于stack exchange,提问作者Ian Barkley-Yeung
相关产品推荐
相关产品推荐

