From 0027f55184ed6a7790bab03907fb6dc4ed72b399 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E6=99=93=E4=B8=9C?= <763795151@qq.com>
Date: Wed, 30 Jul 2025 20:57:56 +0800
Subject: [PATCH] =?UTF-8?q?windows=E5=90=AF=E5=8A=A8=E8=84=9A=E6=9C=AC?=
=?UTF-8?q?=E6=94=AF=E6=8C=81=E4=BB=BB=E6=84=8F=E8=B7=AF=E5=BE=84=EF=BC=8C?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0PowerShell=E5=90=AF=E5=8A=A8=E8=84=9A?=
=?UTF-8?q?=E6=9C=AC.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 2 +-
assembly.xml | 1 +
bin/start.bat | 42 ++++++++++++++++++++++++++++++++++++------
bin/start.ps1 | 41 +++++++++++++++++++++++++++++++++++++++++
4 files changed, 79 insertions(+), 7 deletions(-)
create mode 100644 bin/start.ps1
diff --git a/README.md b/README.md
index a34eed9..92712c4 100644
--- a/README.md
+++ b/README.md
@@ -34,7 +34,7 @@ github下载慢也可以试试从gitee下载,点击下载[gitee来源kafka-con
## 快速使用
### Windows
1. 解压缩zip安装包
-2. 进入bin目录(必须在bin目录下),双击执行`start.bat`启动
+2. 进入bin目录, 双击执行`start.bat`启动; 如果使用PowerShell, 也可以选择运行`start.ps1`启动
3. 停止:直接关闭启动的命令行窗口即可
### Linux或Mac OS
diff --git a/assembly.xml b/assembly.xml
index b3a13a1..9e9b7e7 100644
--- a/assembly.xml
+++ b/assembly.xml
@@ -23,6 +23,7 @@
*.sh
*.bat
+ *.ps1
bin
0755
diff --git a/bin/start.bat b/bin/start.bat
index db6c1f6..a9b55ce 100644
--- a/bin/start.bat
+++ b/bin/start.bat
@@ -1,8 +1,38 @@
+@echo off
+
rem MAIN_CLASS=org.springframework.boot.loader.JarLauncher
rem JAVA_HOME=jre1.8.0_66
-set JAVA_CMD=%JAVA_HOME%\bin\java
-set JAVA_OPTS=-Xmx512m -Xms512m -Xmn256m -Xss256k -Dfile.encoding=utf-8
-set CONFIG_FILE=../config/application.yml
-set TARGET=../lib/kafka-console-ui.jar
-set DATA_DIR=..
-"%JAVA_CMD%" -jar %TARGET% --spring.config.location=%CONFIG_FILE% --data.dir=%DATA_DIR%
+
+setlocal enabledelayedexpansion
+
+set "BIN_DIR=%~dp0"
+if not "%BIN_DIR:~-1%"=="\" set "BIN_DIR=%BIN_DIR%\"
+
+set "BASE_DIR=%BIN_DIR%.."
+for %%I in ("%BASE_DIR%") do set "BASE_DIR=%%~fI"
+
+if defined JAVA_HOME (
+ set "JAVA_CMD=%JAVA_HOME%\bin\java"
+) else (
+ echo ERROR: JAVA_HOME is not defined
+ exit /b 1
+)
+
+set "JAVA_OPTS=-Xmx512m -Xms512m -Xmn256m -Xss256k -Dfile.encoding=utf-8"
+
+set "CONFIG_FILE=%BASE_DIR%\config\application.yml"
+set "TARGET=%BASE_DIR%\lib\kafka-console-ui.jar"
+set "DATA_DIR=%BASE_DIR%"
+set "LOG_HOME=%BASE_DIR%"
+
+if not exist "%TARGET%" (
+ echo ERROR: Jar file not found at [%TARGET%]
+ exit /b 1
+)
+if not exist "%CONFIG_FILE%" (
+ echo WARNING: Config file not found at [%CONFIG_FILE%]
+)
+
+"%JAVA_CMD%" %JAVA_OPTS% -jar "%TARGET%" --spring.config.location="%CONFIG_FILE%" --data.dir="%DATA_DIR%" --logging.home="%LOG_HOME%"
+
+endlocal
\ No newline at end of file
diff --git a/bin/start.ps1 b/bin/start.ps1
new file mode 100644
index 0000000..6c6361c
--- /dev/null
+++ b/bin/start.ps1
@@ -0,0 +1,41 @@
+# PowerShell
+# Set the script execution policy. If necessary, execute this command in PowerShell and then run the script.
+# Set-ExecutionPolicy Bypass -Scope Process -Force
+
+param()
+
+$BIN_DIR = $PSScriptRoot
+if (-not $BIN_DIR.EndsWith('\')) {
+ $BIN_DIR += '\'
+}
+
+$BASE_DIR = (Get-Item (Join-Path $BIN_DIR "..")).FullName
+
+if (-not $env:JAVA_HOME) {
+ Write-Error "ERROR: JAVA_HOME is not defined"
+ exit 1
+}
+
+$JAVA_OPTS = "-Xmx512m -Xms512m -Xmn256m -Xss256k -Dfile.encoding=utf-8"
+
+$CONFIG_FILE = Join-Path $BASE_DIR "config\application.yml"
+$TARGET = Join-Path $BASE_DIR "lib\kafka-console-ui.jar"
+$DATA_DIR = $BASE_DIR
+$LOG_HOME = $BASE_DIR
+
+if (-not (Test-Path $TARGET -PathType Leaf)) {
+ Write-Error "ERROR: Jar file not found at [$TARGET]"
+ exit 1
+}
+
+if (-not (Test-Path $CONFIG_FILE -PathType Leaf)) {
+ Write-Warning "WARNING: Config file not found at [$CONFIG_FILE]"
+}
+
+$javaCmd = Join-Path $env:JAVA_HOME "bin\java.exe"
+
+& $javaCmd $JAVA_OPTS.Split() `
+ -jar $TARGET `
+ "--spring.config.location=$CONFIG_FILE" `
+ "--data.dir=$DATA_DIR" `
+ "--logging.home=$LOG_HOME"
\ No newline at end of file