2014-10-04 50 views
2

我有一个launch4J配置headerType =控制台。你可以在Launch4j中设置WindowTitle headerType == console吗?

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

例如,如果我创建

start "This is my Window Title" mylauncher.exe 

一个批处理文件,然后我会得到一个控制台窗口这是我的窗口标题作为标题。我如何配置Launch4j以便批处理文件不是必需的?

回答

2

据我所知,launch4j内没有设置来做到这一点。有一个windowTitle选项,但文档说它只用于GUI。

相反,我认为你有几个选择。我假设你只使用Windows,因为你使用的是批处理和exe文件。

选项:

  1. 修改源launch4j将呼叫添加到Win32 API函数SetConsoleTitle。你基本上想重新编译控制台部分,然后重建你的可执行文件。他们使用Dev-Cpp进行编译。

    有一个类似项目WinRun4J,它有一个配置控制台标题的选项,它使用这种方法。也许launch4j所有者可以根据需要添加此功能,但将其添加到自己中并不难。我在修改bug之前修改了launch4j源代码,这非常简单。

  2. 编写一个JNI库,以从您的java代码中调用相同的Win32函数。见this post

  3. 而不是编写自己的JNI DLL,请使用JNA library从Java调用SetConsoleTitle。有关示例用法,请参阅#2中同一链接中的答案。

+0

谢谢@megadan,很好的答案。 – William 2014-10-15 17:52:12