Hi Daniel,

Does the warning message resembles the one at [1]?

I think your evaluation that the step 1 failed is correct. I'd suggest adding "--verbose" option to the step 1 command line to get more details.

[1] https://github.com/openjdk/jdk/blob/4c6af03f81e068a98b8f4628b96682a54f3946da/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_de.properties#L85

- Alexey

On 11/4/2025 12:32 PM, Daniel Peintner wrote:
Hi Alexey, all,

I nailed down the problem to the following, which seems to differ between JDK25 and JDK21.
Maybe this helps to reproduce the issue.

jpackage is called 3 times in my process

 1. /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home/bin/jpackage
    --type app-image --input
    /Users/daniel/Documents/GitHub/myPROJECT/build/install/myPROJECT/lib
    --main-jar myPROJECT-25.11.03.jar --main-class
    eu.my_company.myproject.Launcher --dest
    /Users/daniel/Documents/GitHub/myPROJECT/build/jpackage --name
    myPROJECT --app-version 25.11.03 --runtime-image
    /Users/daniel/Documents/GitHub/myPROJECT/build/jre --java-options
    --add-opens=javafx.base/com.sun.javafx.collections=ALL-UNNAMED
    --java-options
    --add-opens=javafx.base/com.sun.javafx.event=ALL-UNNAMED
    --java-options
    --add-opens=javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED
    --java-options
    
--add-opens=javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED
    --java-options
    --add-opens=javafx.controls/javafx.scene.control.skin=ALL-UNNAMED
    --java-options
    --add-exports=java.management/javax.management=ALL-UNNAMED
    --java-options
    --add-opens=java.xml/com.sun.org.apache.xerces.internal.util=ALL-UNNAMED
    --java-options
    --add-opens=javafx.graphics/com.sun.glass.ui=ALL-UNNAMED --icon
    src/main/deploy/package/macosx/myPROJECT.icns
    --mac-package-identifier eu.my-company.myproject --mac-sign

 2. /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home/bin/jpackage
    --type pkg --dest
    /Users/daniel/Documents/GitHub/myPROJECT/build/jpackage --name
    myPROJECT --app-version 25.11.03 --app-image
    /Users/daniel/Documents/GitHub/myPROJECT/build/jpackage/myPROJECT.app
    --file-associations src/main/resources/associations.properties
    --app-version 25.11.03 --vendor "My Company" --copyright "My
    Company" --mac-sign

 3. /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home/bin/jpackage
    --type dmg --dest
    /Users/daniel/Documents/GitHub/myPROJECT/build/jpackage --name
    myPROJECT --app-version 25.11.03 --app-image
    /Users/daniel/Documents/GitHub/myPROJECT/build/jpackage/myPROJECT.app
    --file-associations src/main/resources/associations.properties
    --app-version 25.11.03 --vendor "My Company" --copyright "My
    Company" --mac-sign


First it creates the app-image and afterwards it creates pkg and dmg and signs it.

As you can see in the 3 commands, it uses JDK21.
Once I change "jdk-21.jdk" with "jdk-25.jdk" it warns after step 2 already with the following message in German

Warnung: Nicht signiertes app-image wird zum Erstellen von signiertem pkg verwendet.

It translates to something like: it tries to sign pkg and complains that the app-image is not signed.
Hence, somehow step 1 failed already but does not show any error/warning.

Please let me know whether the above helps to reproduce the issue.

Thanks,

-- Daniel



On Tue, Nov 4, 2025 at 4:01 PM Daniel Peintner <[email protected]> wrote:

    Hi Alexey,

    Thank you for your reply.
    I am using the badass runtime plugin which calls jpackage under
    the hood.

    While trying to create an example project, I noticed that there
    were some changes
    '--mac-package-identifier' needs to go into imageOptions and
    not installerOptions.
    see
    
https://github.com/danielpeintner/Java11Test/commit/742fce0d9e2995554829b6f199f22f0b22a5d385
    
<https://urldefense.com/v3/__https://github.com/danielpeintner/Java11Test/commit/742fce0d9e2995554829b6f199f22f0b22a5d385__;!!ACWV5N9M2RV99hQ!PyybrFqsPzI4Zo0L-pavG2mZkHToVTLkE6V8ezQdZYV20QXukxrjgODsksKVmoxUVoJW9hQTe2Z1vC1xwikUQGK-K4xefEo$>

    That fixed the problem with jpackage. Anyhow, it still does not
    work with JDK25 and macOS signing.
    Using the JDK25 seems to need additional options (compared to JDK21).

    With JDK25 and --mac-sign the process no longer opens the KeyChain
    access and asks for the credentials. Hence, the image itself is no
    longer signed which matches with what I see on the debug console
    "non signed app-image used to sign dmg"  ... freely translated
    into English since I see the German version only

    Therefore, apple's notary service says invalid with the logs like
    "The binary is not signed with a valid Developer ID certificate".

    Using the *same* gradle file, switching to JDK21 works without any
    issues again.
    I will try to investigate further.

    Thanks,

    -- Daniel




    On Mon, Nov 3, 2025 at 7:30 PM Alexey Semenyuk
    <[email protected]> wrote:

        Hi Daniel,

        I can not reproduce the issue you experience with jdk25.0.1:

        ---
        $ ~/jdk-25.0.1.jdk/Contents/Home/bin/jpackage --input input
        --dest output --type app-image --main-jar hello.jar
        --main-class com.my_domain.project.Hello
        --mac-package-identifier com.my-domain.project
        $ echo $?
        0
        ---

        If I run the same command line without `
        --mac-package-identifier` option it fails as expected:
        ---
        $ ~/jdk-25.0.1.jdk/Contents/Home/bin/jpackage --input input
        --dest output --type app-image --main-jar hello.jar
        --main-class com.my_domain.project.Hello
        Bundler Mac Application Image skipped because of a
        configuration problem: invalid mac bundle identifier
        [com.my_domain.project].
        Advice to fix: specify identifier with "--mac-package-identifier".
        ---

        The same failure for `--mac-package-identifier
        com.my_domain.project` (with the underscore):
        ---
        $ ~/jdk-25.0.1.jdk/Contents/Home/bin/jpackage --input input
        --dest output --type app-image --main-jar hello.jar
        --main-class com.my_domain.project.Hello
        --mac-package-identifier com.my_domain.project
        Bundler Mac Application Image skipped because of a
        configuration problem: invalid mac bundle identifier
        [com.my_domain.project].
        Advice to fix: specify identifier with "--mac-package-identifier".
        ---

        Any chance you accidentally put the string with the underscore
        instead of the hyphen as a value of the
        `--mac-package-identifier` option on your command line?

        - Alexey

        On 11/3/2025 11:43 AM, Daniel Peintner wrote:
        Hi,

        I am about to switch a JavaFX project from JDK21 to JDK25 and
        I noticed a problem when running jpackage.

        My domain has a hyphen, like in www.my-domain.com
        
<https://urldefense.com/v3/__http://www.my-domain.com__;!!ACWV5N9M2RV99hQ!PyybrFqsPzI4Zo0L-pavG2mZkHToVTLkE6V8ezQdZYV20QXukxrjgODsksKVmoxUVoJW9hQTe2Z1vC1xwikUQGK-KS5-g-8$>
        Hence, my Java package reads like this: com.my_domain.project
        Note: hyphen becomes underscore.

        Running vanilla jpackage in JDK21 complained with
        Invalid Mac-Bundle-ID [com.my_domain.project]
        due to the *invalid* underscore and suggests me to use
        "--mac-package-identifier"

        Hence, I added --mac-package-identifier com.my-domain.project
        (with the hyphen again)
        All good so far.

        Running the same code with JDK25 with the above settings
        shows the error message again
        Invalid Mac-Bundle-ID [com.my_domain.project]

        I can add any argument to --mac-package-identifier
        It seems it is simply not taken into account.

        I am using JDK 25.0.1

        Is this a known issue with JDK25 and jpackage?
        Is there any other way to make jpackage work?

        Thanks,

        -- Daniel



Reply via email to