在Qoder中指定JDK和Maven运行AI学习的SpringBoot项目的完整指南
一、项目环境要求
1.1 基础要求
- JDK版本:17+(项目必须,系统配置的环境变量是JDK 8)
- Maven版本:3.6+
- Ollama服务:http://localhost:11434
- 应用端口:885
1.2 环境配置
- 系统JDK:JDK 8(环境变量指向)
- 项目JDK :JDK 17(路径:
D:\SoftWare\jdk\jdk17) - Maven路径 :
D:\SoftWare\Maven\apache-maven-3.6.3
二、为什么需要指定JDK和Maven
2.1 必须指定JDK 17的原因
- Spring Boot 3.x 要求最低 JDK 17
- Spring AI 框架基于 JDK 17+ 构建
- 系统环境变量是JDK 8,会导致编译失败
2.2 必须指定Maven的原因
- 可能使用特定版本的Maven
- 避免系统环境变量中Maven版本不兼容
- 确保构建环境一致性
三、指定JDK和Maven的方法
方法1:在PowerShell中临时指定(当前会话有效)
powershell
# 设置JDK 17路径
$env:JAVA_HOME = "D:\SoftWare\jdk\jdk17"
# 将JDK 17添加到PATH最前面
$env:PATH = "D:\SoftWare\jdk\jdk17\bin;" + $env:PATH
# 定义Maven路径
$MVN = "D:\SoftWare\Maven\apache-maven-3.6.3\bin\mvn.cmd"
# 验证Java版本(应显示17)
java -version
# 验证Maven
& $MVN -version
方法2:在批处理文件中指定(推荐)
batch
@echo off
REM 设置JDK 17路径
set JAVA_HOME=D:\SoftWare\jdk\jdk17
REM 将JDK 17添加到PATH
set PATH=%JAVA_HOME%\bin;%PATH%
REM 设置Maven路径
set MVN=D:\SoftWare\Maven\apache-maven-3.6.3\bin\mvn.cmd
方法3:在pom.xml中指定编译器路径(永久配置)
在pom.xml的<build>标签中添加:
xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>17</source>
<target>17</target>
<fork>true</fork>
<executable>D:\SoftWare\jdk\jdk17\bin\javac.exe</executable>
</configuration>
</plugin>
</plugins>
</build>
四、交互式批处理脚本实现
4.1 创建启动脚本
创建文件:start.bat(推荐使用英文避免编码问题)
batch
@echo off
echo ========================================
echo Spring AI Ollama Manager
echo ========================================
echo.
REM ========================================
REM 配置区域 - 修改这里的路径即可
REM ========================================
set MVN=D:\SoftWare\Maven\apache-maven-3.6.3\bin\mvn.cmd
set JAVA_HOME=D:\SoftWare\jdk\jdk17
set PATH=%JAVA_HOME%\bin;%PATH%
set PROJECT_DIR=d:\WorkSpace\Gitee\java-demo\AI\spring-ai-alibaba-ollama
REM ========================================
REM Enter project directory
cd /d %PROJECT_DIR%
echo Maven: %MVN%
echo JDK: %JAVA_HOME%
echo.
REM Check JDK
if not exist "%JAVA_HOME%\bin\java.exe" (
echo [ERROR] JDK 17 not found: %JAVA_HOME%
pause
exit /b 1
)
echo ===== Java Version =====
java -version
echo.
REM Check Maven
if not exist "%MVN%" (
echo [ERROR] Maven not found: %MVN%
pause
exit /b 1
)
echo ===== Maven Version =====
call "%MVN%" -version
echo.
:MENU
echo.
echo ========================================
echo Please select operation:
echo ========================================
echo 1. Check Environment
echo 2. Build Project (skip tests)
echo 3. Clean and Build
echo 4. Start Project
echo 5. Package Project (JAR)
echo 6. View Dependencies
echo 7. Test API
echo 8. Exit
echo.
set /p choice=Enter choice (1-8):
if "%choice%"=="1" goto CHECK
if "%choice%"=="2" goto BUILD
if "%choice%"=="3" goto CLEAN_BUILD
if "%choice%"=="4" goto START
if "%choice%"=="5" goto PACKAGE
if "%choice%"=="6" goto DEPS
if "%choice%"=="7" goto TEST
if "%choice%"=="8" goto END
echo Invalid choice, try again
goto MENU
:CHECK
echo.
echo ===== Environment Check =====
echo JDK Path: %JAVA_HOME%
java -version
echo.
echo Maven Path: %MVN%
call "%MVN%" -version
echo.
echo Project: %PROJECT_DIR%
dir pom.xml
echo.
pause
goto MENU
:BUILD
echo.
echo ===== Building Project =====
call "%MVN%" clean install -DskipTests
if %errorlevel% neq 0 (
echo.
echo [ERROR] Build FAILED!
pause
goto MENU
)
echo.
echo [SUCCESS] Build SUCCESS!
pause
goto MENU
:CLEAN_BUILD
echo.
echo ===== Cleaning Project =====
call "%MVN%" clean
echo.
echo ===== Building Project =====
call "%MVN%" clean install -DskipTests
if %errorlevel% neq 0 (
echo.
echo [ERROR] Build FAILED!
pause
goto MENU
)
echo.
echo [SUCCESS] Build SUCCESS!
pause
goto MENU
:START
echo.
echo ===== Starting Project =====
echo.
echo Application URLs:
echo - Chat: http://localhost:885/ai/generate?message=hello
echo - Health: http://localhost:885/ai/health
echo - POST: http://localhost:885/ai/chat
echo.
echo Press Ctrl+C to stop application
echo ========================================
echo.
call "%MVN%" spring-boot:run
goto MENU
:PACKAGE
echo.
echo ===== Packaging Project =====
call "%MVN%" clean package -DskipTests
if %errorlevel% neq 0 (
echo.
echo [ERROR] Package FAILED!
pause
goto MENU
)
echo.
echo [SUCCESS] Package SUCCESS!
echo JAR file: target\sspring-ai-ollama-demo-1.0.jar
echo Run with: java -jar target\sspring-ai-ollama-demo-1.0.jar
pause
goto MENU
:DEPS
echo.
echo ===== Maven Dependencies =====
call "%MVN%" dependency:tree
echo.
pause
goto MENU
:TEST
echo.
echo ===== Testing API =====
echo Testing: http://localhost:885/ai/generate?message=hello
echo.
curl "http://localhost:885/ai/generate?message=hello"
echo.
echo.
pause
goto MENU
:END
echo.
echo Goodbye!
exit /b 0
五、使用步骤详解
5.1 首次使用
-
创建脚本文件
- 在项目根目录创建
start.bat - 将上述代码粘贴进去并保存
- 在项目根目录创建
-
检查配置
- 打开
start.bat,确认路径配置正确:MVN:Maven路径JAVA_HOME:JDK 17路径PROJECT_DIR:项目路径
- 打开
-
运行脚本
- 双击
start.bat或 - 在Qoder终端输入:
start.bat
- 双击
5.2 操作流程
启动脚本
↓
自动检查JDK和Maven
↓
显示菜单
↓
选择操作:
1. Check Environment - 检查环境配置
2. Build Project - 编译项目(跳过测试)
3. Clean and Build - 清理并编译
4. Start Project - 启动SpringBoot应用
5. Package Project - 打包成JAR
6. View Dependencies - 查看依赖树
7. Test API - 测试API接口
8. Exit - 退出
↓
执行完成后返回菜单
测试效果:

5.3 典型使用场景
场景1:首次构建项目
1. 运行 start.bat
2. 选择 1 (检查环境)
3. 选择 2 (构建项目)
4. 选择 4 (启动项目)
场景2:修改代码后重新运行
1. 运行 start.bat
2. 选择 3 (清理并编译)
3. 选择 4 (启动项目)
场景3:打包部署
1. 运行 start.bat
2. 选择 5 (打包项目)
3. 获取JAR文件:target\sspring-ai-ollama-demo-1.0.jar
六、常见问题解决
6.1 构建失败:测试依赖缺失
错误信息:
程序包org.junit.jupiter.api不存在
程序包org.springframework.boot.test.context不存在
解决方法:
确保 pom.xml 包含测试依赖:
xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
6.2 PowerShell执行策略限制
错误信息:
无法加载文件,因为在此系统上禁止运行脚本
解决方法:
使用 .bat 文件而不是 .ps1 文件(已提供)
6.3 端口885被占用
解决方法:
修改 application.yml 中的端口:
yaml
server:
port: 8080 # 改为其他端口
6.4 Ollama连接失败
检查Ollama是否运行:
powershell
curl http://localhost:11434/api/tags
启动Ollama:
powershell
ollama serve
七、快速命令参考
7.1 手动执行(不用脚本)
powershell
# 设置环境
$env:JAVA_HOME = "D:\SoftWare\jdk\jdk17"
$env:PATH = "D:\SoftWare\jdk\jdk17\bin;" + $env:PATH
$MVN = "D:\SoftWare\Maven\apache-maven-3.6.3\bin\mvn.cmd"
# 进入项目目录
cd d:\WorkSpace\Gitee\java-demo\AI\spring-ai-alibaba-ollama
# 编译
& $MVN clean install -DskipTests
# 启动
& $MVN spring-boot:run
7.2 验证环境
powershell
# 检查Java版本
java -version
# 检查Maven版本
& "D:\SoftWare\Maven\apache-maven-3.6.3\bin\mvn.cmd" -version
# 检查Ollama
curl http://localhost:11434/api/tags
八、项目结构说明
spring-ai-ollama-demo/
├── src/
│ ├── main/
│ │ ├── java/com/badao/ai/
│ │ │ ├── SpringAiDemoApplication.java # 启动类
│ │ │ └── controller/
│ │ │ └── ChatController.java # 对话接口
│ │ └── resources/
│ │ └── application.yml # 配置文件
│ └── test/
│ └── java/com/badao/ai/
│ └── SpringAiZhipuHelloApplicationTests.java
├── pom.xml # Maven配置
├── start.bat # 启动脚本(新建)
└── README.md
九、API接口说明
项目启动后可访问以下接口:
| 接口 | 方法 | 说明 | 示例 |
|---|---|---|---|
/ai/generate |
GET | 简单对话 | http://localhost:885/ai/generate?message=你好 |
/ai/chat |
POST | JSON对话 | {"message": "你好"} |
/ai/health |
GET | 健康检查 | http://localhost:885/ai/health |
十、总结
推荐工作流
- 创建
start.bat脚本(一次性) - 双击运行脚本
- 选择对应操作
- 完成构建和启动
关键要点
✅ 必须指定JDK 17 (通过JAVA_HOME)
✅ 必须指定Maven路径 (通过MVN变量)
✅ 使用批处理文件 (避免PowerShell策略问题)
✅ 添加测试依赖 (确保编译成功)
✅ 英文脚本内容(避免编码问题)