Izpack失败,“没有文件扩展名的脚本引擎”.js“,

在使用Izpack 5 Beta 11的testing机器上,如果我使用64位winrun4j exe运行捆绑的64位java启动install.jar,则Izpack会抱怨

There is no script engine for file extension ".js" ,然后抱怨The installer could not launch with administrator permissions ,则尝试安装到默认安装目录失败,因为您没有pipe理员权限,安装到另一个文件夹C:/ Program Files完成了

而如果我运行它与运行32位Java的32位winrun4j安装程序,它工作正常。

如果我只是直接运行install.jar没有exe包装

即java -jar install.jar

它使用32位JVM和64位JVM来给出这些错误。

所以我目前唯一的工作解决scheme是安装32位的exe包装,但我也需要64位包装。

所以问题是

  1. 为什么32位EXE工作和64位EXE不工作
  2. 为什么32位或64位,如果我试图安装没有包装。

跟进

我发现这个关于JavaScript错误(但不是Izpack)的线程 ,发现.js文件与Utlradedit相关,Utlradedit是我用来编辑大多数文件types的编辑器。

使用Ultraedit简单地解除关联.js意味着现在当我运行

  • java -jar install.jar在32位install.jar上使用32位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. 为什么简单地将文件types与编辑器相关联就会破坏这个javascript的东西,我可以想象这个或者类似的问题会影响很多用户。
  2. 为什么从我的64位包装器运行导致installer.js运行中止退出

这里有四个问题:

  1. 为什么32位exe工作和64位exe不工作
  2. 为什么32位或64位,如果我试图安装没有包装。
  3. 为什么简单地将文件types与编辑器相关联就会破坏这个javascript的东西,我可以想象这个或者类似的问题会影响很多用户。
  4. 为什么从我的64位包装器运行导致installer.js运行中止退出

我会试图回答他们:

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

  2. 我怀疑必需的应用程序/包装不在您的系统的path。 path中的两个文件夹是C:\ WINDOWS和C:\ WINDOWS \ SYSTEM32。 在命令提示符处,键入单词SET (不需要caps)。 出现按字母顺序排列的variables列表。 在说PATH =查找您希望启动您的应用程序的包装的完整文件夹path。 这可能不在那里。 它可以添加,如果你喜欢。

  3. 好问题,但有一个很好的理由:通过关联一个文件types打开一个程序,你告诉你的计算机总是用文件编辑器打开文件,在这种情况下以.js结尾。 它是按照你所说的去做的,而不是你想要的 。 一个stream行的方式来得到你想要的是重新关联文件与它以前的程序(你可能知道哪一个是最好的),并编辑该文件,添加您最喜爱的JS编辑器的“打开.. Windows资源pipe理器“的右键菜单中的”。“选项。 如果你喜欢,我可以find并链接到一个或两个页面。

  4. 我相信这与问题和答案#1紧密相关。

让我知道这是否有帮助。

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