有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用Powershell安装Jasperserver时出现问题。ANT看不到Java

我正在尝试使用Powershell将Jasperserver安装到Windows虚拟机上

我可以很好地安装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")

还有路径变量。进入系统->;高级系统设置->;环境变量我可以看到它们在那里,所以我假设它不仅仅是设置powershell会话

当我尝试运行ANT时(通过批生成)

cd C:\Jaspersoft\jasperreports-server-6.2.0\apache tomcat\bin
$arguments='/c服务。bat安装' 启动进程cmd-Wait-PassThru-ArgumentList$参数

它给了我这个错误:

> 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、调用命令等

如果我重新启动服务器,它将安装良好。另外,如果我在命令提示符下直接运行批处理,也可以

在我必须使用已经安装了Java的映像之前,我想了解为什么会发生这种情况,并在理想情况下使其工作


共 (1) 个答案

  1. # 1 楼答案

    SetEnvironmentVariable(..., "Machine")setx都在注册表中设置变量。此值用于由explorer启动的未来进程(例如重新启动后),但未为当前进程或其子进程设置此值。脚本需要为当前进程设置变量

    使用。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"