# 检查是否以管理员权限运行
$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 安装和启动处理完成。"
windows 一键安装activemq 并启动
最新推荐文章于 2024-09-26 22:00:00 发布