2014-10-04 3 views
2

У меня есть start4J config, где headerType = console.Можете ли вы установить WindowTitle в Launch4j, где headerType == console?

Консоль прекрасно отображает все выходные данные консоли. Но заголовок этого окна консоли всегда является полным путем к исполняемому пусковому устройству. Есть ли способ установить заголовок этого окна, и если да, то каким образом?

Например, если создать командный файл с

start "This is my Window Title" mylauncher.exe 

тогда я получите окно консоли с Это мой заголовок окна в качестве заголовка. Как я могу настроить Launch4j, поэтому командный файл не требуется?

ответ

2

Насколько я знаю, в этом случае нет установки в launch4j. Существует опция windowTitle, но документы говорят, что это только для графического интерфейса.

Вместо этого, я думаю, у вас есть несколько вариантов. Я предполагаю, что вы используете Windows только с тех пор, как вы используете пакетные и exe-файлы.

Варианты:

  1. Измените источник на launch4j, чтобы добавить вызов функции SetConsoleTitle API Win32. Вы по существу захотите перекомпилировать часть consolehead, а затем перестроить исполняемый файл. Они используют Dev-Cpp для компиляции.

    Существует аналогичный проект под названием WinRun4J, который имеет возможность настройки заголовка консоли и использует этот метод. Может быть, владельцы launch4j могут добавить эту функцию, если ее попросят, но было бы не слишком сложно добавить ее в себя. Я изменил исходный файл start4j, прежде чем исправлять ошибку, и это было довольно просто.

  2. Напишите библиотеку JNI для вызова той же функции Win32 из вашего java-кода. См. this post.

  3. Вместо написания вашей собственной DLL-библиотеки JNI используйте JNA library для вызова SetConsoleTitle с Java. См. Ответ в той же ссылке в # 2 для примера использования.

+0

Спасибо @megadan, отличный ответ. – William