# 检查是否以管理员权限运行
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
if (-not $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    Start-Process powershell.exe -Verb runAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`""
    exit
}

# 设置 ActiveMQ 下载 URL 和安装路径
$activeMQDownloadUrl = "https://archive.apache.org/dist/activemq/5.16.3/apache-activemq-5.16.3-bin.zip"
$installPath = "C:\activemq"

# 检查安装路径是否存在,如果不存在则创建
if (-not (Test-Path $installPath)) {
    New-Item -ItemType Directory -Path $installPath | Out-Null
}

# 检查下载文件是否存在
$downloadPath = Join-Path $installPath "activemq.zip"
if (-not (Test-Path $downloadPath)) {
    # 下载 ActiveMQ
    Write-Host "正在下载 ActiveMQ..."
    Invoke-WebRequest -Uri $activeMQDownloadUrl -OutFile $downloadPath
} else {
    Write-Host "ActiveMQ 安装文件已存在,无需下载。"
}

# 检查解压后的目录是否存在
$activeMQDir = Join-Path $installPath (Get-ChildItem $installPath -Directory | Where-Object { $_.Name -like "apache-activemq-*" })
if (-not $activeMQDir) {
    # 解压 ActiveMQ
    Write-Host "正在解压 ActiveMQ..."
    Expand-Archive -Path $downloadPath -DestinationPath $installPath
} else {
    Write-Host "ActiveMQ 已解压,无需重复解压。"
}

# 设置 ActiveMQ 环境变量
$activeMQBinPath = $activeMQDir + "\bin"

Write-Host "ActiveMQ bin 路径为:$activeMQDir"
Write-Host "ActiveMQ bin 路径为:$activeMQBinPath"

if (-not (Test-Path $activeMQBinPath)) {
    Write-Host "ActiveMQ bin 目录不存在。请检查安装过程。"
    exit
}

# 确认 activemq.bat 文件存在
$activeMQBatPath = Join-Path $activeMQBinPath "activemq.bat"
if (-not (Test-Path $activeMQBatPath)) {
    Write-Host "activemq.bat 文件不存在。请检查安装过程。"
    exit
}

# 启动 ActiveMQ
Write-Host "正在启动 ActiveMQ..."
if (-not (Get-Process "activemq" -ErrorAction SilentlyContinue)) {
    try {
        Start-Process $activeMQBatPath -ArgumentList "start"
    } catch {
        Write-Host "启动 ActiveMQ 时出现错误:$_"
    }
} else {
    Write-Host "ActiveMQ 已在运行,无需再次启动。"
}

Write-Host "ActiveMQ 安装和启动处理完成。"

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐