使用Launch4j将Java应用程序固定到Windows 7任务栏

kay*_*ahr 9 java windows taskbar launch4j windows-7

我目前正在尝试将Java应用程序固定到Windows 7任务栏.该应用程序是使用Launch4j启动的.程序图标显示正确,但右键单击任务栏上的图标仅显示带有"关闭窗口"条目的上下文菜单.没有用于将应用程序固定到任务栏的菜单项.将EXE文件拖到任务栏也无法正常工作.在任务栏中单击此新启动器时,第二个图标会在任务栏中生成.

我按照这两个问题的解决方案的指示来解决问题,但它没有帮助:

来自第二个问题/解决方案的JNA内容编译并且不会抛出任何异常.我可以在设置后阅读应用程序ID.但我仍然无法将应用程序固定到任务栏.

我在Github上创建了一个小测试应用程序来演示这个问题:

https://github.com/kayahr/launch4jtest

该应用程序使用Maven作为构建系统.只需运行mvn package,您就会在目标目录中找到一个ZIP文件,其中包含设置此应用程序ID所需的EXE文件和jna.jar.将此ZIP解压缩到某个目录,双击EXE并尝试将应用程序固定到任务栏,您将看到问题.

那么这个应用程序有什么问题?

ecl*_*cle 5

NB根据kayahr的要求重写了主要帖子中的一些评论:)

您需要创建一个嵌入AppUserModelID信息的图标快捷方式.InnoSetup可以在[Icons]部分下创建这样的图标快捷方式.通过JNA提供分配给AppUserModelID的应用程序名称.建议的阅读链接:

如何为izpack installer .jar文件制作.exe文件

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

  1. 将EXE文件(不是其图标快捷方式)拖放到Windows 7任务栏中以创建固定图标时,它可以正常工作;
  2. 它在运行EXE文件并稍后选择"pin to taskbar"选项菜单以创建固定图标时起作用.如果您没有设置AppUserModelID,则无法进行此操作; 甚至它会导致一种奇怪的行为,例如在任务栏上使用javaw.exe"icon"而不是你的exe图标,因为Launch4J使用javaw.exe调用可执行jar(重复的固定图标)

要在Linux下运行基于Windows的安装程序构建器,请参考以下内容:

http://katastrophos.net/andre/blog/2009/03/16/setting-up-the-inno-setup-compiler-on-debian/

是的,正如kayahr所提到的,只有当嵌入式AppUserModelID的图标快捷方式保持不变(即不删除/删除)时,此Windows 7功能才有效.