java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > IDEA启动项目配置端口

IntelliJ IDEA启动项目时配置端口的操作指南

作者:李少兄

默认情况下,Spring Boot 应用会使用 8080 端口启动,但在有些场景中,我们必须自定义端口,所以本文给大家详细介绍了IntelliJ IDEA启动项目时配置端口的详细指南,需要的朋友可以参考下

一、为什么需要手动设置启动端口?

默认情况下,Spring Boot 应用会使用 8080 端口启动。但在以下场景中,我们必须自定义端口:

二、四种主流方式

方法一:通过配置文件设置端口(推荐用于常规开发)

这是最基础也是最常用的配置方式,适用于 Spring Boot 项目。

支持的配置文件类型

文件名格式说明
application.properties键值对格式,简洁明了
application.yml层级结构清晰,适合复杂配置

操作步骤

打开你的项目资源目录:

src/main/resources/

编辑 application.properties 文件,添加如下内容:

server.port=8081

或者编辑 application.yml 文件:

server:
  port: 8081

保存文件后直接运行主类即可生效。

注意事项

最佳实践

# application.yml 示例:根据不同环境设置端口
spring:
  profiles:
    active: dev

---
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 8081

---
spring:
  config:
    activate:
      on-profile: test
server:
  port: 9090

然后在运行配置中添加程序参数:--spring.profiles.active=test

方法二:通过 VM Options 设置端口(适合临时调试与多实例)

当你要在同一台机器上启动多个相同服务实例时,VM Options 是最实用的方式。

关键点:新版 IDEA 默认隐藏部分高级选项,必须手动开启!

完整操作流程(含界面细节)

点击右上角运行配置下拉框 → 选择 Edit Configurations…

在左侧选择你的运行配置(通常是 Spring Boot 类型)

查找右侧是否有 “VM options:” 输入框:

此时会出现输入框,在其中填写:

-Dserver.port=8082

点击 ApplyOK

启动项目,查看控制台输出确认端口已变更:

Tomcat started on port(s): 8082 (http)

新版 IDEA 界面提示(文字版)

使用场景举例

场景配置示例
第一个实例-Dserver.port=8081
第二个实例-Dserver.port=8082
第三个实例-Dserver.port=8083

可复制多个运行配置,分别设置不同端口,实现一键并行启动。

方法三:通过 Program Arguments 设置端口(命令行风格)

与 VM Options 不同,这种方式是将参数传递给应用程序本身,而非 JVM。

如何添加?

  1. 进入 Run/Debug Configurations
  2. 点击 Modify Options
  3. 勾选 Program arguments
  4. 输入:
--server.port=8084

与 VM Options 的区别对比

维度VM Options (-D)Program Arguments (--)
作用对象JVM 系统属性应用程序参数
语法-Dkey=value--key=value
是否影响其他系统属性
Spring Boot 是否识别✅ 是✅ 是
优先级更高略低(但仍高于配置文件)

注:两者均可被 Spring Boot 正确解析,但 -D 方式更底层,可用于非 Spring 项目。

方法四:通过环境变量设置端口(适合生产模拟与自动化)

某些云平台或容器化部署依赖环境变量来决定端口(如 Kubernetes、Docker)。

在 IDEA 中模拟环境变量

  1. 进入 Run Configuration
  2. 点击 Modify Options
  3. 勾选 Environment variables
  4. 添加键值对:
    • Key: SERVER_PORT
    • Value: 8085

或者写成一行:

SERVER_PORT=8085;JAVA_OPTS=-Xmx512m

提示:Spring Boot 自动映射 SERVER_PORT 到 server.port

实际应用场景

# Docker 启动时指定
docker run -e SERVER_PORT=8086 my-spring-app

在本地 IDEA 中提前测试该行为,可极大提升部署稳定性。

三、四大方式优先级

Spring Boot 对端口配置有明确的优先级顺序,了解这一点至关重要:

优先级配置方式来源
1️⃣ 最高命令行参数--server.port=9000
2️⃣VM Options-Dserver.port=9000
3️⃣环境变量SERVER_PORT=9000
4️⃣配置文件application.yml / application.properties
5️⃣ 最低默认值内嵌服务器默认端口(Tomcat: 8080)

记忆口诀:“外 > 内,动 > 静” —— 外部传入 > 内部写死;动态传参 > 静态配置

四、进阶:多实例并行启动(Compound Configuration)

当你需要一次性启动多个不同端口的服务(例如订单服务 + 用户服务 + 网关),可以使用 Compound Configuration 功能。

操作步骤

  1. 打开 Edit Configurations
  2. 点击左上角 + 号 → 选择 Compound
  3. 命名(如:Microservices Cluster
  4. Included configurations 中添加多个已有的运行配置
  5. 每个子配置可独立设置端口(通过 VM Options)
  6. 点击运行按钮,所有服务将按顺序启动

优势

五、常见问题与解决方案

Q1:启动时报错 Address already in use: bind

说明端口已被占用。

解决方案:

Windows:

netstat -ano | findstr :8081
taskkill /PID <进程ID> /F

macOS/Linux:

lsof -i :8081
kill -9 <PID>

Q2:VM Options 选项找不到?

原因:新版 IDEA 默认隐藏。

正确做法:

Q3:端口改了但没生效?

检查:

  1. 是否拼错关键字(应为 server.port,不是 port.server
  2. 是否有多个配置文件冲突
  3. 是否使用了 Profile 激活了另一个配置
  4. 控制台日志是否显示最终使用的端口

六、各方法适用场景总结

方法适用阶段是否推荐备注
配置文件日常开发✅ 强烈推荐易维护,版本控制友好
VM Options调试/多实例✅ 推荐灵活,不污染代码
Program Arguments命令行兼容✅ 推荐与脚本一致
环境变量生产模拟✅ 推荐符合 DevOps 实践
Compound 配置微服务联调✅ 强烈推荐提升开发效率

七、技术延伸

Spring Boot 使用 PropertySource 层次结构加载配置,形成一个有序的“配置栈”。你可以通过以下代码验证当前生效的端口来源:

@RestController
public class PortInfoController {

    @Value("${server.port}")
    private int port;

    @Autowired
    private Environment env;

    @GetMapping("/port")
    public Map<String, Object> getPortInfo() {
        Map<String, Object> info = new HashMap<>();
        info.put("currentPort", port);
        info.put("propertySources", Arrays.toString(env.getPropertySources().stream()
            .map(EnumerablePropertySource::getName)
            .toArray()));
        return info;
    }
}

访问 /port 接口即可看到哪些配置源参与了决策。

以上就是IntelliJ IDEA启动项目时配置端口的操作指南的详细内容,更多关于IDEA启动项目配置端口的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文