# BSPHP Java Demo 运行说明

本目录包含两个 Java 项目：

- `bsphp.java.login`（对应 `bsphp.mac.demo.card`）
- `bsphp.java.car`（对应 `bsphp.mac.demo`）

## 1) 环境要求

- JDK 17（或更高）
- Maven 3.8+（命令 `mvn` 可用）

**macOS 注意：** 系统自带的 `/usr/bin/java` 往往是占位程序，运行时会提示 *Unable to locate a Java Runtime*。请安装真正的 JDK（推荐 Homebrew）：

```bash
brew install openjdk@17
```

安装后确认（应能输出版本号，而不是弹窗或报错）：

```bash
/opt/homebrew/opt/openjdk@17/bin/java -version
```

（可选）把 JDK 加入当前终端 PATH，方便直接使用 `java`：

```bash
export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"
java -version
```

可先检查：

```bash
java -version
mvn -version
```

如果提示 `mvn: command not found`，请先安装 Maven（macOS 可用 Homebrew）：

```bash
brew install maven
```

## 2) 命令行运行（推荐）

下面两套命令分别在各自项目目录执行。

---

### 2.1 运行 `bsphp.java.login`

```bash
cd /Users/enzuzhou/Documents/BSPHP-JAVA-DEMO/bsphp.java.login
mvn -DskipTests package dependency:copy-dependencies
java -cp "target/classes:target/dependency/*" com.bsphp.login.BsphpLoginApp
```

---

### 2.2 运行 `bsphp.java.car`

```bash
cd /Users/enzuzhou/Documents/BSPHP-JAVA-DEMO/bsphp.java.car
mvn -DskipTests package dependency:copy-dependencies
java -cp "target/classes:target/dependency/*" com.bsphp.car.BsphpCarApp
```

## 2.3 一键脚本运行（更方便）

项目根目录已提供脚本：

- `run-login.sh`
- `run-car.sh`

第一次先给执行权限：

```bash
cd /Users/enzuzhou/Documents/BSPHP-JAVA-DEMO
chmod +x run-login.sh run-car.sh
```

运行登录版：

```bash
./run-login.sh
```

运行账号版：

```bash
./run-car.sh
```

注意：建议直接用 `./run-xxx.sh`，不要用 `sh run-xxx.sh`，避免 shell 环境 PATH 差异导致找不到 `mvn`。

## 3) IntelliJ IDEA 运行（可选）

1. 打开项目目录 `BSPHP-JAVA-DEMO`
2. 分别导入两个 Maven 模块：
   - `bsphp.java.login/pom.xml`
   - `bsphp.java.car/pom.xml`
3. 创建 Run Configuration：
   - Login 主类：`com.bsphp.login.BsphpLoginApp`
   - Car 主类：`com.bsphp.car.BsphpCarApp`
4. 直接点击运行

## 4) 常见问题

- **问题：`mvn: command not found`**
  - 原因：未安装 Maven，或 PATH 未生效
  - 处理：安装 Maven 后重开终端，再执行 `mvn -version`

- **问题：`Unable to locate a Java Runtime`（Maven 能构建，启动程序失败）**
  - 原因：未安装 JDK，或只用了 macOS 自带的 `java` 占位程序
  - 处理：执行 `brew install openjdk@17`，然后重开终端，再运行 `./run-login.sh` / `./run-car.sh`  
    项目根目录的 `setup-java-env.sh` 会尽量自动选用 Homebrew 的 JDK

- **问题：界面启动但接口请求失败**
  - 原因：网络不可达、服务地址或密钥配置不正确
  - 处理：先用界面的“网络测试”按钮检查连通性，再核对配置类中的 URL/密钥

