59

在使用 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 位包装器。

所以问题是

  1. 为什么 32 位 exe 可以工作而 64 位 exe 不能工作
  2. 如果我尝试在没有包装器的情况下安装,为什么 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

所以后续问题是:

  1. 为什么简单地将文件类型与编辑器关联会破坏这个 javascript 的东西,我可以想象这个或类似的问题可能会影响很多用户。
  2. 为什么从我的 64 位包装器运行会导致 installer.js 运行 Abort Exit
4

2 回答 2

3

这里有四个问题:

  1. 为什么 32 位 exe 可以工作而 64 位 exe 不能工作
  2. 如果我尝试在没有包装器的情况下安装,为什么 32 位或 64 位都没有。
  3. 为什么简单地将文件类型与编辑器关联会破坏这个 javascript 的东西,我可以想象这个或类似的问题可能会影响很多用户。
  4. 为什么从我的 64 位包装器运行会导致 installer.js 运行 Abort Exit

我将尝试回答他们:

  1. 有时在应该“无缝”处理 32 位和 64 位的程序中出现错误和错误;一个例子是赛门铁克的 SEP 定义修复程序 - 它有时有效,但并非全部有效。您的评论证实了这些错误,并且您甚至发现了一个在此 32/64 处理中不会出错的竞争程序:“尚未解决此问题,但已通过使用launch4j而不是winrun4j运行安装程序来解决此问题”。恭喜!:)

  2. 我怀疑必要的应用程序/包装器不在您系统的 PATH 中。路径中的两个文件夹是 C:\WINDOWS 和 C:\WINDOWS\SYSTEM32。在命令提示符下,键入单词SET(不需要大写字母)。出现按字母顺序排列的变量列表。在 PATH= 中查找您希望启动应用程序的包装器的完整文件夹路径。它可能不存在。如果您愿意,可以添加它。

  3. 好问题,但有一个很好的理由:通过将要打开的文件类型与程序相关联,您是在告诉您的计算机始终使用文件编辑器打开文件,在这种情况下以 .js 结尾。它正在做你告诉它做的事情,而不是你想要做的事情。获得您想要的内容的一种流行方法是将文件与之前的程序重新关联(您可能知道哪个最好),然后编辑文件,将您最喜欢的 JS 编辑器添加到“打开方式.. ." Windows 资源管理器的右键菜单中的选项。如果您愿意,我可以找到并链接到有关如何执行此操作的一两个页面。

  4. 我相信这与问答#1密切相关。

让我知道这是否有帮助。

于 2013-03-04T06:32:18.697 回答
0

更改 .js 文件的默认操作会导致问题,原因与更改 .exe 文件的默认操作会导致问题的原因相同。程序期望另一个程序的默认操作是运行它。编辑应该始终是右键单击操作,而不是默认操作。

于 2013-03-19T22:32:49.580 回答