将 Java 可执行文件(使用 launch4j)固定到 Windows 7 任务栏

2022-09-01 13:28:10

经过半天的寻找和尝试,我终于放弃了。

我有一个java应用程序,我创建了一个可运行的jar(包括任何其他库,只有一个jar文件)。使用launch4j和可运行的jar,我正在制作一个可执行的“MyApp.exe”。

可执行文件工作正常,但我想将其固定到我的Windows 7任务栏。现在,我只有任务栏条目“关闭窗口”。

使用 JNA 阅读并实施以下解决方案后

我的应用程序在GUI中正确显示它的“应用程序用户模型ID”(仅用于测试目的)。

但是:我的程序在任务管理器中显示为“javaw.exe”,即使我设置了launch4j选项“自定义进程名称和XP样式清单”,我仍然无法将其固定到任务栏。

背景信息:我正在使用 Windows 7 管理员帐户,并且不希望该应用需要管理员权限。

无论如何,如果我从上下文菜单中“以管理员身份”启动应用程序并确认UAC消息,我现在可以固定到任务栏。但是:即使我正确设置了“应用程序用户模型ID”,Windows仍然希望固定“javaw.exe”,即使我的程序现在在TaskManager中显示为“MyApp.exe”。

我完全糊涂了。但我显然不是唯一一个有这些问题的人。=> 请参阅使用JNA获取/设置应用程序标识符中Gregory Pakosz答案的最后一条评论

最后的问题:

  1. Gregory Pakosz 用 JNA 的方式设置“应用程序用户模型 ID”(https://stackoverflow.com/a/1928830/1128689)对我有用。但是,Windows仍然将我的应用程序识别为“javaw.exe”的实例。我还需要做什么?
  2. 也许一些窗口或Java更新在这里破坏了一些东西吗?
  3. 我真的必须使用提升的用户权限运行我的应用吗?我真的不想...
  4. 在launch4j中还有其他一些我必须设置的选项吗?
  5. 我是否必须在 launch4j 中使用清单文件?

答案 1

我在JSmooth的帮助下从可运行的罐子中创建一个Exe来解决这个问题。已将其固定到任务栏,并运行它,没有任何问题。

希望这有帮助


答案 2

winrun4j也没有问题,它比Jsmooth更新,更易于使用


推荐