【问题标题】:Check Powershell is available in Java检查 Powershell 在 Java 中是否可用
【发布时间】:2013-08-29 15:39:26
【问题描述】:

我是否可以检查 Powershell 是否安装在使用 Java 的计算机上。我知道如何调用 powershell 脚本,并且我可以检查操作系统是否是 Windows XP 或更高版本,但我更愿意检查 powershell.exe 是否存在或其他什么?

提前致谢

【问题讨论】:

    标签: java windows powershell


    【解决方案1】:

    简单的解决方案是检查路径%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe 是否存在。有一个方便的方法java.io.File.Exists()

    另一种方法是查询注册表。如果 Powershell 存在,就会有密钥 HKLM\SOFTWARE\Microsoft\PowerShell。天真的方法将通过Runtime.getRuntime().exec() 启动reg.exe 并读取其输出。更复杂的方法是基于JNI/JNA,它在 Windows 上提供对注册表的访问。

    【讨论】:

    • 感谢您的回答。第一个选项可能是最简单的方法,但是如果用户安装了不同的版本怎么办?...无论版本如何,注册表项都会始终相同吗?
    • @Andy 应该不是问题。 MS意识到硬编码版本到路径是愚蠢的,所以所有Powershell版本都是installed in v1.0 directory
    • 啊有趣。我很高兴 MS 意识到了这一点!感谢您澄清它。无论如何在Java中获得%WINDIR%
    • 对版本进行硬编码并不是一个愚蠢的想法——powershell 2.0 最初是并行安装的。
    猜你喜欢
    • 1970-01-01
    • 2018-08-06
    • 2017-04-09
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多