我们的Java Swing应用程序在Windows上运行,并使用Launch4J包装在一个exe文件中。
我们想自定义我们的应用程序进程名称和描述(在Windows的任务管理器中),因为它当前是“javaw.exe”和“Java Platform SE binary”(这对我们的客户感到困惑)。
虽然较早版本的Launch4J可以使用< customProcName>进行更改,但此选项现在已经停止,因为它不再工作,因为Win7。
是否有其他(简单)解决方法来自定义我们的应用程序进程的名称和描述?
例如,更改javaw.exe可执行文件名似乎是一种方法(当我们将它嵌入到包装的exe文件中),但是如何指示launch4j jvm文件名更改?
另一个选择可能是创建一个启动器exe文件:也许是一个过度的杀手?
任何想法/提示都是受欢迎的;谢谢!
如果您想要滚动自己的解决方案,您将要查看JNI和
Invocation API,特别是用于创建VM的JNI_CreateJavaVM(),找到主方法GetStaticMethodID()并使用CallStaticVoidMethod调用它。
原文链接:https://www.f2er.com/windows/372417.html这是java.exe,javaw.exe和各种其他本机启动器在内部执行的操作。一些例子包括:
> @L_403_1@
> IntelliJ WinLauncher.cpp
> WinRun4J VM.cpp
如果您不想将本机构建系统与您的java构建系统集成,则一种方法是提前构建一个静态的launcher.exe,并将其视为一个静态二进制Blob。然后在Java构建过程中,使用java修改二进制blob,更新VERSIONINFO,图标和启动画面。这个方法的一个例子可以在IntelliJ LauncherGeneratorMain.java看到