当尝试运行安装程序 Jar 文件时,出现一条错误消息,提示拒绝在 Program Files 文件夹下创建目录的写访问权限。
右键单击 -> 以管理员身份运行不适用于 Jar 文件(我认为是因为 Java.exe 使用它们 - 它们本身并不被 shell 视为可直接执行的文件)。
运行具有高程的 .Jar 文件的最快捷、最简单的方法是什么?
我正在评估此工具,以便将其推荐给我们的开发团队,他们将手动将其安装在他们的机器上。我更喜欢不需要他们输入任何内容的选项。
答案1
为了方便其他人运行 JAR 安装程序而无需更改所有计算机,您可能需要使用批处理脚本将其打包,以提升并运行 JAR 文件。您可以使用来自 Microsoft 的 Elevation PowerToys。它们包含一个实用的实用程序,您只需在命令前面加上前缀,即可以管理员身份启动任何内容elevate
。
下载完成后,将它们解压到一个文件夹中,并将elevate.cmd
和复制elevate.vbs
到包含 JAR 文件的文件夹中。然后,编写一个带有.cmd
扩展名的新批处理脚本,其内容如下:
elevate cmd /c start "%CD%\installer.jar"
这将使用系统上此类文件的默认处理程序启动 JAR 文件(使用 命令start
)cmd
。 %CD%
指向脚本的当前工作目录,并且是必要的,因为提升的命令行将在 中启动c:\windows\system32
。
但是,如果由于某种原因,Java 未正确配置为 JAR 文件的默认处理程序,则该操作将失败。如果您可以指望 Java 在所有系统上都位于同一位置,则可以这样做:
elevate "c:\Program Files\Java\jre\bin\java.exe" -jar "%CD%\installer.jar"
完成上述任何一项后,只需运行批处理文件,Windows 将提示管理员提升权限并启动安装程序。
将提升脚本、您的脚本和安装程序文件包含在启动脚本的自解压存档中,然后您可以将其包装在一个小.exe
文件中。(7-Zip是一个用于创建此类档案的出色的开源工具。
有关 Elevation PowerToys 的更多信息,请查阅链接文章或下载中包含的 README 文件。
答案2
我刚刚有机会这样做,发现最简单的方法是以管理员身份运行 cmd.exe,然后从命令行调用,而无需下载和安装 Elevation PowerToys java.exe -jar 'installer.jar'
。当然,我必须先找到 java.exe,但这并不需要很长时间……