Какие опции есть у native-image?

Рейтинг: 0Ответов: 1Опубликовано: 23.05.2023

Собственно моя цель - создать из моего -приложения нативный исполняемый файлик, к примеру у нас будет программа hello world. Я компилирую её в байт-код с помощью стандартного инструмента jdk 17 - javac, после я работаю уже непосредственно с native-image. Я не нашёл таких опций в документации, как output - опция, указывающая на то, куда будет перемещен выходной exe с dll-ками, но если эта проблема решается тем, что надо просто запустить командную строку в нужной директории, а к jar указать полный путь, то например такой опции, которая изменит имя процесса будущего приложения я не нашёл.

Может быть это уже не касается native-image, а exeшник нужно обрабатывать другой программой, но вопрос какой?

Собственно моя проблема заключается в том, что запуская мой helloworld.exe, на котором нет иконки, в диспетчере задач отображается процесс helloworld.exe. Как мне изменить имя процесса, чтоб в диспетчере задач отображалось заданное мной красивое имя Hello World! и как сменить иконку exe, чтоб как на рабочем столе была видна иконка, так и в диспетчере задач была иконка рядом с процессом.

Если это можно сделать на стадии компиляции native-image'ом, то: во-первых какие нужны опции именно для смены процесса и смены иконки и, во-вторых, желательно мне скинуть статью с документации native-image, где есть такие опции, которые как раз таки связаны с изменением свойств будущего exe.

Ответы

▲ 3

Для задания пути и имени exe-файла есть -H:Path= и -H:Name=, но это именно про имя файла, а не имя процесса в диспетчере.

Для имени процесса и иконки никаких опций скорее всего нет, но можно попробовать вот что: заранее скомпилировать файл ресурсов (допустим helloworld.res) и подсунуть его линкеру через -H:NativeLinkerOption. Включить ещё -H:+TraceNativeToolUsage для контроля:

native-image -H:+TraceNativeToolUsage -H:NativeLinkerOption=helloworld.res ...