Feedback JEP 343: jpackage --win-menu
Christopher Merrill
chris.l.merrill at gmail.com
Thu Sep 12 18:04:42 UTC 2019
On Thu, Sep 12, 2019 at 11:28 AM Andy Herrick <andy.herrick at oracle.com>
wrote:
> yes - clearly something wrong here - it is supposed to find
> MuseIDE-launcher.cfg and create shortcut to MuseIDE-launcher - but it has
> come up with jvm.cfg - a completely unrelated file.
>
> lets see - your input dir is the lib dir of your runtime-image. the app
> dir will be populated with everything in the input dir, so it gets jvm.cfg
> which is in every runtime's lib dir.
>
> Not sure why you want to do this, but I think it points out we should not
> be satisfied that a file has extension "cfg", we should also look at it and
> confirm it looks like a valid jpackage app-image <app>.cfg file, before
> deriving the name of the app from the name of the cfg file.
>
It is entirely possible I *don't* want to do that. I'm admittedly a newbie
on this. I'm upgrading an app that used the old packager, via a Gradle
plugin, to bundles our app. I'm using a new gradle plugin that is likely
less finished, since jpackager is so new :)
I've been using https://bugs.openjdk.java.net/browse/JDK-8200758 as a
reference, but it is not clear what is and is not yet implemented, thus
far. Is there a better source for current docs?
What should the input dir point to? Perhaps just the lib folder of my
distribution, which contains all the JARs? (I don't need command-line
launchers).
Thanks again!
Chris
> /Andy
> On 9/12/2019 11:08 AM, Christopher Merrill wrote:
>
> Thanks Andy.
>
> Ok, so the image was created in the previous step using:
> C:\Apps\OpenJDKs\jdk-14/bin/jpackage.exe --input
> D:\Work\MuseProject\ide\closed\install\build\image\lib --main-jar
> MuseIDE-launcher-3.1.jar --main-class org.musetest.ide.launcher.Bootstrap
> --output D:\Work\MuseProject\ide\closed\install\build\jpackage --name
> MuseIDE-launcher --identifier org.musetest.ide.launcher.Bootstrap
> --runtime-image D:\Work\MuseProject\ide\closed\install\build\image
>
> There is only one .cfg file in the .../build/image folder, 'jvm.cfg',
> which contains:
> -server KNOWN
> -client IGNORE
>
> However, the output folder (../build/jpackage/MuseIDE-launcher/app) of the
> second jpackage step which I referenced in the previous message contains a
> MuseIDE-launcher.cfg file with:
> [Application]
> app.name=MuseIDE-launcher
> app.version=1.0
> app.runtime=$APPDIR\runtime
> app.identifier=org.musetest.ide.launcher.Bootstrap
>
> app.classpath=$APPDIR\app\MuseIDE-launcher-3.1.jar;$APPDIR\app\dynamic-classloader-0.2.jar;$APPDIR\app\IdeLaunchUpdate-2.3.jar;$APPDIR\app\jrt-fs.jar;$APPDIR\app\update4j-1.2.2.jar
> app.mainjar=$APPDIR\app\MuseIDE-launcher-3.1.jar
> app.mainclass=org.musetest.ide.launcher.Bootstrap
> [JavaOptions]
> [ArgOptions]
>
> I didn't create or supply that file...so I assume jpackage did.
>
> Could it be the missing windows start menu item be affected by the
> location of the main class? In my case, it isn't in the main jar. In fact,
> the main jar is empty except for the manifest, which contains only the
> manifest version declaration. The main class is located in one of the other
> jar files, which are correctly included in the resulting image and
> installer. The .cfg correctly includes those JARs on the classpath (and it
> all works fine when installed). I don't really see how that should affect
> the creation of a shortcut to the .exe, but thought I would mention it.
>
> TIA!
> Chris
>
>
>
> On Thu, Sep 12, 2019 at 10:34 AM Andy Herrick <andy.herrick at oracle.com>
> wrote:
>
>> Strange ...
>>
>> I can't seem to reproduce any scenario where msi installer created by
>> jpackage won't install a shortcut, but from the message:
>>
>> "Multiple launchers found in predefined app-image. jvm will be used as
>> primary launcher."
>>
>> It seems that you are using a predefined app-image and there are
>> multiple launchers in the app-image, and the code is choosing "jvm" as
>> the primary one (the one a shortcut will be created for).
>>
>> This may be the wrong launcher. When an installer is built for an
>> existing app-image, it doesn't know the name of the app, it looks for
>> the config file in <root>/app/
>>
>> If there are multiple cfg files (like you built the app-image with
>> --add-launcher jvm=jvm-launcher.properties) it is just taking the first
>> one.
>>
>> Is it possible this is what is happening in your case ?
>>
>> /Andy
>>
>> On 9/12/2019 9:54 AM, Christopher Merrill wrote:
>> > I am using build 14-jpackage+1-35 with WiX 3.11.1.2318 to build an MSI
>> > installer. If I am understanding the comments in thread "RFR:
>> JDK-8229779:
>> > Shortcut creation policy", a start menu entry (and desktop shortcut?)
>> > should always be produced with this version of jpackage command line
>> > options? The MSI installer I've created does not create a start menu
>> entry,
>> > even when I include the --win-menu option. Other people seem to have the
>> > opposite problem (start menu item when they don't want it), so clearly
>> I'm
>> > doing something wrong...
>> >
>> > C:\Apps\OpenJDKs\jdk-14/bin/jpackage --package-type msi --output
>> > D:\Work\MuseProject\ide\closed\install\build\jpackage --name
>> > MuseIDE-launcher --app-image
>> > D:\Work\MuseProject\ide\closed\install\build\jpackage/MuseIDE-launcher
>> > --win-per-user-install --win-menu --app-version 3.1 --name
>> MuseIDE-Launcher
>> >
>> > Other than this message, which I assume is a warning, the execution is
>> > successful:
>> > Multiple launchers found in predefined app-image. jvm will be used as
>> > primary launcher.
>> >
>> > Are there other options that would influence getting a start menu item
>> > added by the installer?
>> >
>> > FWIW, I am using gradle with the org.beryx.runtime plugin to create the
>> > image and installer. Are there settings/options/stuff in the image that
>> > would affect creation of the start menu item?
>> >
>> > TIA!
>> > Chris
>> >
>>
>
>
> --
> ¡ɹǝʌo ǝɯ lloɹ 'sıɥʇ pɐǝɹ uɐɔ noʎ ɟı
>
>
--
¡ɹǝʌo ǝɯ lloɹ 'sıɥʇ pɐǝɹ uɐɔ noʎ ɟı
More information about the core-libs-dev
mailing list