要求 我想在Windows 7上发布Java GUI应用程序。此应用程序使用Swing Toolkit,不需要任何本机代码。 该应用程序使用NSIS安装程序进行安装。 我想尽可能将这个应用程序集成到Windows 7中。 意即: 应用程序运行时,必须可以将应用程序固定到任务栏。 必须能够将数据文件与应用程序相关联,以便Windows使用我的应用程序打开这些文件。 必须自动使用32位Java运行时和64位Java运行时。 所以,当用户卸载一个32位的Java,并安装一个64位的Java(反之亦然),那么我的应用程序必须仍然工作。 必须支持Windows的大字体设置。 我不太了解这个function。 我只是知道一些应用程序完全忽略它,其他人(像谷歌浏览器)是像素缩放(看起来很丑),而其他人通过简单地使用更大的字体支持它(这是我想要的,通常它的工作原理只有WinRun4J解决scheme以下提到不起作用)。 testing的解决scheme WinRun4J WinRun4j是启动Java应用程序的EXE文件。 因为应用程序不分叉新的Java进程Windows认为EXE文件是应用程序。 所以任务栏没有问题。 文件关联工作,因为文件可以简单地与EXE文件相关联。 问题: 不支持大字体。 应用程序窗口像素缩放,而不是像谷歌浏览器。 根据安装的JRE,必须使用两个不同的EXE文件。 所以当安装64位JRE时,应用程序必须以64位EXE文件启动。 安装32位JRE时,必须使用其他EXE。 这不是用户友好的,因为用户不明白为什么只安装32位JRE时,他必须使用64位操作系统上的32位EXE。 Launch4J Launch4J创build一个32位EXE,启动一个外部Java进程来启动Java应用程序。 所以不像WinRun4J,它也可以启动一个64位的Java。 问题: 无法将应用程序固定到任务栏。 如果headerType="gui" , System.out.println将不会打印到控制台,无论应用程序是否从控制台启动。 jar 在Windows上,您只需双击JAR文件即可启动应用程序。 安装的JRE无所谓,简单的工作。 但… 问题: 应用程序不能被固定到任务栏。 无法在开始菜单中创build快捷方式。 无法将文件与JAR文件相关联。 BAT / CMD 像这样一个简单的batch file可以用来启动应用程序: @echo off start c:\windows\system32\javaw.exe -jar […]
在使用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位包装。 所以问题是 为什么32位EXE工作和64位EXE不工作 为什么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 […]