使用 Powershell 安装 Jasperserver 时出现问题。 ANT 看不到 Java
Problems installing Jasperserver with Powershell. ANT can't see Java
我正在尝试使用 Powershell 将 Jasperserver 安装到 Windows VM 上。
我可以安装 Java 就好了,但是一些后续的获得 运行 的 bat 文件抱怨他们找不到环境变量,例如 JAVA_HOME。但是我可以看到它们存在。
我添加环境变量:
[Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Java\jdk1.8.0_91", "Machine")
[Environment]::SetEnvironmentVariable("JRE_HOME", "C:\Program Files\Java\jre1.8.0_91", "Machine")
[Environment]::SetEnvironmentVariable("CLASSPATH", "C:\Program Files\Java\jdk1.8.0_91\jre1.8.0_91\lib\rt.jar", "Machine")
还有路径变量。进入 System -> Advanced System Settings -> Environment variables 我可以看到它们在那里,所以我假设它不仅仅是设置 powershell 会话。
当我尝试 运行 ANT(虽然是批量构建)
cd C:\Jaspersoft\jasperreports-server-6.2.0\apache-tomcat\bin
$arguments = '/c service.bat 安装'
启动进程 cmd -Wait -PassThru -ArgumentList $arguments
它给我这个错误:
> WARNING: JAVA_HOME environment variable not found [minimal] Running
> install-minimal-pro Ant task
> ---------------------------------------------------------------------- '"java.exe"' is not recognized as an internal or external command,
> operable program or batch file. Checking Ant return code: OK
我试过:
- 以多种方式设置环境(setx.exe,等等)
- 运行 bat 有多种方式,启动进程、cmd、invoke-command 等
如果我重新启动服务器,它将安装正常。另外,如果我 运行 直接在命令提示符下批处理也没问题。
在我必须使用已经安装了 Java 的图像之前,我想了解为什么会发生这种情况,最好让它正常工作。
SetEnvironmentVariable(..., "Machine")
和 setx
都在注册表中设置变量。此值用于资源管理器启动的未来进程(例如重启后),但未为当前进程或其子进程设置。您的脚本需要为 当前进程 .
设置变量
使用 .NET 语法:
[Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Java\jdk1.8.0_91", "Process")
或者,使用 PS 语法
$env:JAVA_HOME = "C:\Program Files\Java\jdk1.8.0_91"
我正在尝试使用 Powershell 将 Jasperserver 安装到 Windows VM 上。
我可以安装 Java 就好了,但是一些后续的获得 运行 的 bat 文件抱怨他们找不到环境变量,例如 JAVA_HOME。但是我可以看到它们存在。
我添加环境变量:
[Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Java\jdk1.8.0_91", "Machine")
[Environment]::SetEnvironmentVariable("JRE_HOME", "C:\Program Files\Java\jre1.8.0_91", "Machine")
[Environment]::SetEnvironmentVariable("CLASSPATH", "C:\Program Files\Java\jdk1.8.0_91\jre1.8.0_91\lib\rt.jar", "Machine")
还有路径变量。进入 System -> Advanced System Settings -> Environment variables 我可以看到它们在那里,所以我假设它不仅仅是设置 powershell 会话。
当我尝试 运行 ANT(虽然是批量构建)
cd C:\Jaspersoft\jasperreports-server-6.2.0\apache-tomcat\bin
$arguments = '/c service.bat 安装'
启动进程 cmd -Wait -PassThru -ArgumentList $arguments
它给我这个错误:
> WARNING: JAVA_HOME environment variable not found [minimal] Running
> install-minimal-pro Ant task
> ---------------------------------------------------------------------- '"java.exe"' is not recognized as an internal or external command,
> operable program or batch file. Checking Ant return code: OK
我试过:
- 以多种方式设置环境(setx.exe,等等)
- 运行 bat 有多种方式,启动进程、cmd、invoke-command 等
如果我重新启动服务器,它将安装正常。另外,如果我 运行 直接在命令提示符下批处理也没问题。
在我必须使用已经安装了 Java 的图像之前,我想了解为什么会发生这种情况,最好让它正常工作。
SetEnvironmentVariable(..., "Machine")
和 setx
都在注册表中设置变量。此值用于资源管理器启动的未来进程(例如重启后),但未为当前进程或其子进程设置。您的脚本需要为 当前进程 .
使用 .NET 语法:
[Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Java\jdk1.8.0_91", "Process")
或者,使用 PS 语法
$env:JAVA_HOME = "C:\Program Files\Java\jdk1.8.0_91"