2025.09.01 14:45:21 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory D:\sonarqube-25.8.0.112029\temp 2025.09.01 14:45:21 WARN app[][o.s.a.c.CommandFactoryImpl] ES_JAVA_OPTS is defined but will be ignored. Use properties sonar.search.javaOpts and/or sonar.search.javaAdditionalOpts in sonar.properties to change SQ JVM processes options 2025.09.01 14:45:21 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:{}] 2025.09.01 14:45:21 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[ELASTICSEARCH] from [D:\sonarqube-25.8.0.112029\elasticsearch]: C:\Program Files\Java\jdk-17\bin\java -Xms4m -Xmx64m -XX:+UseSerialGC -Dcli.name=server -Dcli.script=./bin/elasticsearch -Dcli.libs=lib/tools/server-cli -Des.path.home=D:\sonarqube-25.8.0.112029\elasticsearch -Des.path.conf=D:\sonarqube-25.8.0.112029\temp\conf\es -Des.distribution.type=tar -cp D:\sonarqube-25.8.0.112029\elasticsearch\lib\*;D:\sonarqube-25.8.0.112029\elasticsearch\lib\cli-launcher\* org.elasticsearch.launcher.CliToolLauncher 2025.09.01 14:45:22 INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running 2025.09.01 14:45:31 WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [ElasticSearch]: 1 2025.09.01 14:45:31 INFO app[][o.s.a.SchedulerImpl] Process[ElasticSearch] is stopped 2025.09.01 14:45:31 INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped
时间: 2025-09-04 14:15:23 AIGC 浏览: 16
### 启动失败原因
#### 1. 启动脚本覆盖 ES_JAVA_OPTS
SonarQube 的启动脚本(如 `sonar.sh` 或 `StartSonar.bat`)可能会覆盖 `ES_JAVA_OPTS` 环境变量,使得之前设置的参数被忽略。若启动脚本中存在类似 `ES_JAVA_OPTS="-Xms256m -Xmx256m"` 或 `set ES_JAVA_OPTS=-Xms256m -Xmx256m` 的语句,就会导致这种情况发生。
#### 2. Java 内存设置不合理
`ES_JAVA_OPTS` 主要用于设置 Elasticsearch 的 Java 虚拟机(JVM)参数,若内存设置过小,Elasticsearch 可能无法正常启动;若设置过大,可能会导致系统资源不足,同样使 Elasticsearch 进程崩溃。
#### 3. 系统资源不足
Elasticsearch 对系统资源(如内存、CPU、磁盘 I/O 等)要求较高。若系统资源不足,Elasticsearch 可能无法正常启动,退出值为 1 表示进程异常退出。
#### 4. 配置文件错误
Elasticsearch 的配置文件(通常位于 `sonarqube/elasticsearch/config` 目录下)可能存在错误配置,如网络设置、数据路径等,这会导致 Elasticsearch 启动失败。
### 解决办法
#### 1. 检查并修改启动脚本
检查 SonarQube 的启动脚本(`sonar.sh` 或 `StartSonar.bat`),确认其中是否有覆盖 `ES_JAVA_OPTS` 环境变量的代码。若有,将其修改或者移除。例如,在 `sonar.sh` 中,找到类似 `ES_JAVA_OPTS="-Xms256m -Xmx256m"` 的语句并删除或注释掉。
#### 2. 调整 Java 内存设置
合理设置 `ES_JAVA_OPTS` 环境变量,确保 Elasticsearch 有足够的内存运行。可以尝试以下设置:
```bash
export ES_JAVA_OPTS="-Xms512m -Xmx512m"
```
在 Windows 系统中,可以使用以下命令:
```batch
set ES_JAVA_OPTS=-Xms512m -Xmx512m
```
#### 3. 检查系统资源
确保系统有足够的内存、CPU 和磁盘 I/O 资源。可以通过系统监控工具(如 `top`、`htop`、`df -h` 等)查看系统资源使用情况。若资源不足,考虑升级硬件或关闭不必要的进程。
#### 4. 检查 Elasticsearch 配置文件
检查 Elasticsearch 的配置文件(`sonarqube/elasticsearch/config/elasticsearch.yml`),确保配置正确。常见的配置错误包括网络设置、数据路径等。例如,确保 `network.host` 和 `http.port` 配置正确:
```yaml
network.host: 127.0.0.1
http.port: 9200
```
阅读全文
相关推荐



















