java - NSIS - 无法使用 64 位 Java 运行 Java 应用程序

标签 java nsis

我的安装程序在 -post 中启动一个批处理文件。在 32 位下这工作正常但是当我安装了 64 位 JVM 时我得到这个错误:

'java' 不是内部或外部命令,也不是可运行的程序或批处理文件。

我的猜测是,由于 NSIS 是 32 位的,所以它看不到 64 位环境。如果我从命令提示符运行批处理文件,它工作正常。

如何获取 64 位 Java 的环境变量并在我的批处理文件中使用它们?

最佳答案

我假设这是在 64 位风格的 Windows 下运行。

64 位 Windows 为向后兼容 32 位做了一些“巧妙”的事情。 注册表项和文件搜索路径会自动转移。

您使用的命令提示符将是 64 位命令提示符。

要运行 32 位命令提示符,请运行 %windir%\SysWoW64\cmd.exe。 您应该能够在那里重现您的失败情况。 32 位 NSIS 将以 32 位模式启动批处理文件。

您需要确定在 64 位下如何找到 java.exe 文件。 如果您在此处发布您的批处理文件,应该有一些相当明显的东西被转移了。

关于java - NSIS - 无法使用 64 位 Java 运行 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6649227/

相关文章:

java - 如何为 PointPlacemarks 添加图层?

查找字符串中最长的重复子字符串所需的 Java 函数?

java - 使用 Java 将符号链接(symbolic link)复制到文件夹

nsis - makensis 似乎不适用于/D 命令行选项

path - 如何获取nsis脚本中的exe路径?

tomcat - nsis 获取运行服务的端口号

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

java - 使用 JRebel 6.0.0 部署时,在 Spring 4.1.2 更新后找不到资源

electron - Electron NSIS阻止重新安装

environment-variables - NSIS:在编译时使用环境变量吗?