С JPackage я не могу получить опцию --win-console для работы отдельно для основной программы запуска, но я хочу, чтобы основная программа запуска не выводила на консоль, а имела отладочную версию, которая делает это.
т.е. если я запускаю
jpackage --add-launcher SongKongDebug=jpackage.properties @jpackage.txt
jpackage.txt
-i C:\Code\jthink\SongKong\target\songkong-6.10
--runtime-image C:\code\jthink\songkong\JVM64
--main-class com.jthink.songkong.cmdline.SongKong
--name SongKong
--win-dir-chooser
--main-jar lib\SongKong-6.10.jar
--app-version 6.10
--install-dir Jthink\SongKong
--copyright "Copyright 2020 JThink Ltd, United Kingdom"
--license-file C:\Code\jthink\SongKong\src\main\scripts\license.txt
--java-options "-Dhttps.protocols=TLSv1.1,TLSv1.2"
--java-options "--add-opens java.base/java.lang=ALL-UNNAMED"
--java-options "-XX:MaxRAMPercentage=75.0"
--java-options "-XX:MetaspaceSize=45 "
--java-options "-Dcom.mchange.v2.log.MLog=com.mchange.v2.log.jdk14logging.Jdk14MLog"
--java-options "-Dorg.jboss.logging.provider=jdk"
--java-options "-Djava.util.logging.config.class=com.jthink.songkong.logging.StandardLogging"
--vendor JThink
--win-menu
--win-shortcut
--win-menu-group Jthink
jpackage.properties
win-console=--win-console
тогда и SongKong, и SongKongDebug запускаются без консоли
Я также пробовал изменить jpackage.properties (который должен быть парами имя / значение) на
--win-console
, и он все еще не работал
Тогда как если я добавлю
--win-console
в jpackage.txt и
win-console
в jpackage.properties
, то SongKong запустится как консоль, а SongKongDebug не будет, но для меня это неправильный путь.
Если я переименую SongKong в SongKongDebug и SongKongDebug на SongKong
например,
jpackage --add-launcher SongKong=jpackage.properties @jpackage.txt
и измените set --name SongKongDebug
в jpackage.txt
, затем это работает ks, но теперь при установке SongKong говорится, что установка SongKongDebug неверна.
Я пробовал как текущую версию Java 14, так и ранний доступ java 15 и 16 выпусков, но без разницы .
Я обнаружил, что эта ошибка сообщена, но затем пользователь закрыл ее как без проблем https://bugs.openjdk.java.net/browse/JDK-8213717, и я нахожу помощь jpackage немного запутанной, поэтому мне интересно, не так ли я делаю это .
В справке указано:
Параметры для создания средств запуска приложений:
- имя запуска add-launcher = путь к файлу
Name of launcher, and a path to a Properties file that contains a list of key, value pairs (absolute path or relative to the current
каталог). Можно использовать
The keys "module", "add-modules", "main-jar", "main-class", "arguments", "java-options", "app-version", "icon", and "win-console"
.
These options are added to, or used to overwrite, the original command line options to build an additional alternative launcher. The
Основное средство запуска приложения будет построено из параметров командной строки. С помощью этой опции можно создать дополнительные альтернативные пусковые установки, и этот вариант можно использовать несколько раз для создания нескольких дополнительных пусковых установок. --arguments аргументы основного класса
Command line arguments to pass to the main class if no command line arguments are given to the launcher.
This option can be used multiple times.
- java -options java options
Options to pass to the Java runtime.
This option can be used multiple times.
- имя класса основного класса
Qualified name of the application main class to execute.
This option can only be used if --main-jar is specified.
- main-jar основной файл jar
The main JAR of the application; containing the main class (specified as a path relative to the input path).
Either --module or --main-jar option can be specified but not both.
- модуль или -m имя модуля / основной класс]
The main module (and optionally main class) of the application This module must be located on the module path.
When this option is specified, the main module will be linked in the Java runtime image. Either --module or --main-jar option can be
указано, но не оба вместе.
Итак, вы можете создать дополнительную пусковую установку с помощью --add-launcher и использовать файл свойств, но это также издает звуки, что вы можете передавать дополнительные аргументы в качестве дополнительных параметров командной строки, но как это могло быть, если бы это не было понятно, к какому лаунчеру они относятся?