在使用 Izpack 5 Beta 11 的测试机器上,如果我使用运行捆绑的 64 位 java 的 64 位 winrun4j exe 启动 install.jar,则 Izpack 会抱怨
There is no script engine for file extension ".js"
,然后抱怨The installer could not launch with administrator permissions
,然后尝试安装到默认安装目录失败,因为您没有管理员权限,安装到 C:/Program Files 之外的另一个文件夹可以完成
而如果我使用运行 32 位 java 的 32 位 winrun4j 安装程序运行它,它工作正常。
如果我直接运行 install.jar 而不使用 exe 包装器
即java -jar install.jar
它同时使用 32 位 JVM 和 64 位 JVM 给出这些错误。
所以我目前唯一可行的解决方案是安装 32 位 exe 包装器,但我还需要 64 位包装器。
所以问题是
- 为什么 32 位 exe 可以工作而 64 位 exe 不能工作
- 如果我尝试在没有包装器的情况下安装,为什么 32 位或 64 位都没有。
跟进
我发现了这个关于 javascript 错误(但不是 Izpack)的线程,并发现 .js 文件与 Utlradedit 相关联,Utlradedit 是我用于编辑大多数文件类型的编辑器。
简单地将 .js 与 Ultraedit 取消关联意味着现在当我运行
- java -jar install.jar 在 32bit install.jar 上使用 32bit java
- java -jar install.jar 在 64 位 install.jar 上使用 64 位 java
- 32 位 winrun4j 包装器。
它现在可以工作了:)
但是 64 位 winrun4j 现在无法开始安装并且根本不起作用,如果我从命令行窗口运行,我可以看到它
跑步的
wscript C:\Users\MESH\AppData\Local\Temp\Installer.js
c:\Code\WidgetReleases\1.0_Beta_2\widget-windows64\JVM64\bin\javaw.exe
-Dizpack.mode=privileged -jar
C:\Code\WidgetReleases\1.0_Beta_2\widget-windows64\install.jar
他们跑
wscript C:\Users\MESH\AppData\Local\Temp\Installer.js
c:\Code\WidgetReleases\1.0_Beta_2\widget-windows64\JVM64\bin\javaw.exe
abort exit
-Dizpack.mode=privileged -jar
:\Code\WidgetReleases\1.0_Beta_2\widget-windows64\install.jar
所以后续问题是:
- 为什么简单地将文件类型与编辑器关联会破坏这个 javascript 的东西,我可以想象这个或类似的问题可能会影响很多用户。
- 为什么从我的 64 位包装器运行会导致 installer.js 运行 Abort Exit