在Windows上设置Java进程名
我们的Java Swing应用程序在Windows上运行,并使用Launch4J封装在exe文件中 我们想定制我们的应用程序进程名称和描述(在Windows的任务管理器中),因为它目前是“javaw.exe”和“Java平台SE二进制”(这让我们的客户感到困惑) 虽然较旧版本的Launch4J启用了使用在Windows上设置Java进程名,java,windows,swing,Java,Windows,Swing,我们的Java Swing应用程序在Windows上运行,并使用Launch4J封装在exe文件中 我们想定制我们的应用程序进程名称和描述(在Windows的任务管理器中),因为它目前是“javaw.exe”和“Java平台SE二进制”(这让我们的客户感到困惑) 虽然较旧版本的Launch4J启用了使用更改此选项,但此选项现在已失效,因为它从Win7起不再工作 是否有其他(简单的)解决方法来定制我们的应用程序进程名称和描述 例如,更改javaw.exe可执行文件名似乎是一种方法(因为我们将其嵌入
更改此选项,但此选项现在已失效,因为它从Win7起不再工作
是否有其他(简单的)解决方法来定制我们的应用程序进程名称和描述
例如,更改javaw.exe可执行文件名似乎是一种方法(因为我们将其嵌入到包装的exe文件中),但如何指示启动4j jvm文件名已更改
另一个选择是创建一个启动器exe文件:可能是一个过度杀戮
任何想法/提示都是非常受欢迎的;谢谢 如果你能负担得起,似乎做你需要的事。但它最后一次发布是在2007年。有关其许可证的说明摘自应用程序本身:
生成的可执行文件(JSmooth创建的启动器)位于LGPL下,具有类似于gcc许可证例外的“运行时异常”:不要求您分发源代码,也不需要发布提及JSmooth的通知
使用JSmooth时,有一个标记为“骨架”的部分,允许您选择一些预定义的参数。其中之一是“窗口包装器”,适用于如下所述的GUI应用程序:
此框架包装了GUI应用程序
- 不显示控制台I/O
- 如果没有找到Java虚拟机,它可以显示一个可配置的URL(通常指向Java下载页面)
main.class=org.something.MyMainClass
classpath.1=*.jar
(还有更多参数,您可以设置在何处可以找到JRE等)
在第二步中,将winrun4j.exe复制到适合您的应用程序的位置:
copy winrun4j.exe yourapplication.exe
(也有适用于Windows x64的版本)
然后您有了RCEDIT(WinRun4j附带)将ini添加到exe:
rcedit /N yourapplication.exe yourapplication.ini
这看起来很旧,不值得付出努力,但它也可能是您所寻找的:。如果您希望推出自己的解决方案,您将需要查看JNI,特别是用于创建VM的
JNI\u CreateJavaVM()
,找到main方法GetStaticMethodID()
并使用CallStaticVoidMethod
调用它
这就是java.exe
、javaw.exe
和其他各种本机启动器在内部所做的。一些例子包括:
如果您不想将本机构建系统与java构建系统集成,一种方法是预先构建一个静态
launcher.exe
,并将其视为静态二进制blob。然后在java构建过程中,使用java修改二进制blob,以更新、图标和初始屏幕。这种方法的一个例子可以在和中看到。欢迎使用stackoverflow。我修复了你答案中的链接,也许你可以看看这个:@JörnHees谢谢。熟悉语法;发布多个链接需要声誉,这是其他帐户所没有的。