【问题标题】:how to automatically install Visual C++ Redistributable for Visual Studio 2015 used in a java code如何为 Java 代码中使用的 Visual Studio 2015 自动安装 Visual C++ Redistributable
【发布时间】:2018-01-22 06:51:23
【问题描述】:

为了运行 java 代码(包括用于操纵杆的 JXInput 代码),我只运行这个 .bat: jre1.8.0_66\bin\java.exe -Djava.library.path=d:\HG -jar HG11.9.jar

但是,如果我以前安装了 VC 可再发行组件,这将有效。

由于有些人不是软件专家,他们不知道如何从https://www.microsoft.com/en-US/download/details.aspx?id=48145 安装这个 vc_redist_.exe。我提到“”是因为它取决于他们拥有的系统(vc_redist.x64.exe 或 vc_redist.x86.exe)。

我确信这个问题在于简化游戏安装过程,更一般地说,产品安装过程已经解决。那么,避免手动安装 vc_redist 的好习惯是什么?

换句话说,是否可以将这个 vc_redist 包含在 .jar 中?然后,只运行一个 .bat(如上)允许运行游戏。

如果没有,是否可以运行单个 .bat 或其他内容: - 解压缩我的游戏的 .zip 文件(该文件包括游戏和 vc_redist) - 然后根据系统(32位或64位)自动安装vc_redist - 通过什么方式?

非常感谢您的回复

【问题讨论】:

  • 可以使用here 找到的命令从命令行静默安装 redist。使用 env var PROCESSOR_ARCHITECTURE 来确定应该安装 32 位还是 64 位版本。

标签: java c++ windows installation redistributable


【解决方案1】:

如果您已经有 bat 文件进行安装,最好的方法是在安装前在此 *.bat 中包含 vc_redist 的安装。据我所知,将其包含在 *.jar 中是不可能的。最好将所有文件打包成 zip(连同这个 *.bat 脚本)。

要在 bat 中静默安装 vcredist,您必须添加以下命令:

@echo OFF
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set OS=32BIT || set OS=64BIT

if %OS%==32BIT runas /user:Administrator %~dp0\vcredist_x86.exe /q /norestart
if %OS%==64BIT runas /user:Administrator %~dp0\vcredist_x64.exe /q /norestart

#rest of your script

检查系统是 32bit 还是 64bit 取自这里 (batch file to check 64bit or 32bit OS)

%~dp0 解析为批处理脚本所在文件夹的完整路径。

编辑:

由于 runas 可能不是解决以管理员身份运行此问题的最佳解决方案,我将引导您阅读这些帖子以阅读有关在 bat 中以管理员权限运行的信息

How to code a BAT file to always run as admin mode?

How can I auto-elevate my batch file, so that it requests from UAC administrator rights if required?

【讨论】:

  • 记住,它的安装需要管理员权限。
  • 简单的解决方案是编写指令以管理员身份运行安装脚本。我用应该可行的 runas 解决方案更新了答案。
  • @ketjow4: "什么意思 "%~dp0"。是我的问题中提到的微软 URL 吗?如果我在我的 zip 中包含这两个 .exe 文件,在 d:/hg 位置,什么是 .bat 命令来安装它吗?谢谢
  • @PierreDurand 它不是微软的网址。您必须压缩所有文件。然后您将在另一台机器或其他文件夹中解压缩您的文件(此 vcredist_x64.exe、vcredist_x86.exe、*.bat 和一些 *.jar 文件)。因此,要轻松找到您的 exe 和其他文件,最好将所有文件路径设为亲戚,这就是 %~dp0 所做的。正如我的回答一样,它将获得 *.bat 文件所在的路径,因此解压缩后您可以运行它:)
  • @ketjow4 好的。如果我将“%~dp0\”替换为“”,会有什么问题?换句话说,将“%~dp0\vcredist_x86.exe”替换为“vcredist_x86.exe”,因为 .bat 文件将与这些 .exe 文件和 .jar 位于同一位置。
猜你喜欢
  • 1970-01-01
  • 2014-08-22
  • 1970-01-01
  • 2019-02-06
  • 2012-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多