我有一个launch4J配置,其中headerType = console。

控制台可以很好地显示所有控制台输出。但是该控制台窗口的标题始终是可执行启动器的完整路径。有什么方法可以设置该窗口的标题,如果可以的话,如何设置?

例如,如果我创建一个批处理文件

start "This is my Window Title" mylauncher.exe

那么我将获得一个控制台窗口,标题为“这是我的窗口标题”。如何配置Launch4j,因此不需要批处理文件?

最佳答案

据我所知,launch4j中没有设置可以做到这一点。有一个windowTitle选项,但是文档说它仅用于GUI。
相反,我认为您有一些选择。我将假设您仅使用Windows,因为您正在使用批处理和exe文件。
选项:

  • 修改源代码为launch4j,以添加对Win32 API函数 SetConsoleTitle 的调用。从本质上讲,您需要重新编译控制台头部分,然后重新生成可执行文件。他们使用 Dev-Cpp 进行编译。
    有一个类似的项目WinRun4J,它具有用于配置控制台标题的选项,并且使用此方法。也许launch4j所有者可以根据需要添加此功能,但是在您自己中添加它并不难。在修改bug之前,我已经修改了launch4j源代码,这非常简单。
  • 编写一个JNI库,以从您的Java代码中调用相同的Win32函数。参见this post
  • 而不是编写自己的JNI dll,而使用JNA library从Java调用SetConsoleTitle。有关示例用法,请参见#2中同一链接中的答案。
  • 10-08 07:59