Tag: nsis

用于java安装的NSIS脚本

我想使用NSIS脚本安装Java,但我必须知道系统中是否安装了Java(Windows)。 基于注册码,我们如何检查是否安装了Java? 任何人都可以提供NSIS脚本来检查基于注册密钥的Java安装吗?

Launch4j,NSIS和重复固定的Windows 7任务栏图标

我遇到了一个问题,当我在Windows 7中为我的应用程序固定任务栏图标时,单击该图标会为程序打开一个单独的(重复)图标,而不是将其与用于调用它的快捷方式分组。 应用程序本身是一个.jar文件,它使用Launch4j包装到.exe中。 这可以解释为什么图标会被复制 – Launch4j正在调用一个单独的javaw.exe进程,当你开始做这样的事情时,看起来AppModelUserID会变得混乱。 根据这篇文章 ,解决方案是通过一些本机代码指定您的AppModelUserID 。 我按照那里给出的示例成功地在我的应用程序中调用了JNA代码,看起来我正确地将它设置为“MyCompany.MyApp”forms的值。 调用’get’函数会返回我为它设置的值,因此应用程序端的所有内容都显示为OK。 ……但那就是解决方案停止的地方! 我不认为这是它的结束,因为它肯定不能解决我的问题! 看起来还需要的是一个创建的具有相同 AppModelUserID的快捷方式 – 这是我对MSDN文档的解释。 由于我使用NSIS作为我的安装程序,因此我使用WinShell插件在安装时设置应用程序快捷方式的属性。 具体来说,该调用反映了以下示例: WinShell::SetLnkAUMI “$SMPrograms\MyApp\MyApp.lnk” “${MyApp_AppUserModelId}” 那是我拖到任务栏的那个……但是再一次,没有骰子。 应用程序仍然以单独的固定图标打开。 此时,我无法检查是否正确设置了快捷方式属性,因为似乎没有工具来检查给定快捷方式的AppModelUserID是什么。 当我直接创建一个直接写入.jar文件的快捷方式时,一切正常,但是那时尝试将JRE安装到NSIS中的麻烦以及我已经经历过的其他一些令人头疼的事情都在努力避免。 我非常感谢能够帮助我解决这个棘手问题的任何指导! 我总是被这些愚蠢的小审美问题所困扰,这些问题可能会让人难以解决…… 谢谢! 编辑:在我无法validation快捷方式的AppModelUserID实际上是否正确设置后,按照Anders的建议切换到NSIS的ANSI版本来解决问题。

是否可以从Java代码调用Ant或NSIS脚本?

是否可以在运行时从Java代码以编程方式调用Ant或NSIS脚本? 如果是这样,怎么样?