# 【JVM】JPS教學

[![image-1730863926590.png](https://bookstack.treemanou.com/uploads/images/gallery/2024-11/scaled-1680-/aCvWWVaueWphpXj8-image-1730863926590.png)](https://bookstack.treemanou.com/uploads/images/gallery/2024-11/aCvWWVaueWphpXj8-image-1730863926590.png)

`jps` 是 Java 提供的一個工具，用於列出正在執行的 Java 進程。這個工具隨 Java 開發工具包（JDK）一起提供，通常用於監控和診斷 Java 應用程序。以下是 `jps` 的使用方式和一些常見選項。

### 基本用法

直接執行 `jps` 命令可以顯示當前用戶下正在執行的 Java 進程的簡單列表：

```lang-bash
jps

```

這會輸出一個進程 ID 和 Java 類名，例如：

```
12345 MyApplication
67890 AnotherApp

```

### 常見選項

- `-l`：顯示完整的類名或 JAR 路徑。
    
    ```
    jps <span class="hljs-_">-l</span>
    
    ```
    
    輸出示例：
    
    ```
    <span class="hljs-symbol">12345 </span><span class="hljs-keyword">com</span>.example.MyApplication
    <span class="hljs-symbol">67890 </span>/path/<span class="hljs-keyword">to</span>/AnotherApp.jar
    
    ```
- `-v`：顯示啟動 Java 進程時的 JVM 參數。
    
    ```
    <span class="hljs-attribute">jps -v</span>
    
    ```
    
    輸出示例：
    
    ```
    <span class="hljs-symbol">12345 </span>MyApplication -Xms256m -Xmx512m
    <span class="hljs-symbol">67890 </span>AnotherApp -Dproperty=value
    
    ```
- `-m`：顯示傳遞給主類的參數。
    
    ```
    <span class="hljs-attribute">jps -m</span>
    
    ```
    
    輸出示例：
    
    ```
    <span class="hljs-symbol">12345 </span>MyApplication arg1 arg2
    
    ```

### 查看特定主機的進程

如果需要查看其他主機上的 Java 進程，可以使用 `jps` 的 `hostid` 參數指定主機 ID，例如：

```lang-bash
jps <hostid>

```

**注意**：此方法通常需要配置遠程連接。

### 常見用途

- 檢查是否有指定的 Java 應用在執行。
- 確認進程 ID（PID）以便進行進一步的診斷（例如 `jstack` 或 `jmap` 等工具）。
- 快速查看進程的 JVM 參數或主程序參數。

### 小結

`jps` 是一個簡單但實用的工具，用於 Java 進程的快速概覽。配合其他 JVM 工具（如 `jstack`, `jmap` 等）使用，可以更有效地監控和診斷 Java 應用程序。