How to create a modular JavaFX11 runnable jar/exe?












1















I have successfully followed the instructions mentioned in openjfx-docs (using maven)



I'm able to run it in my eclipse. I'm also able to create custom runtime images using jlink. The application could be run through the generated launcher.



Now, how do we create a runnable jar/exe with the stripped down JRE generated by jlink?










share|improve this question

























  • If you've built your run-time image, you can share them as jmods for the users consuming on Java9 or above that should work fine. I mean the example if JavaFX itself distributing jmods and .jar files for its consumption.

    – nullpointer
    Nov 23 '18 at 20:51
















1















I have successfully followed the instructions mentioned in openjfx-docs (using maven)



I'm able to run it in my eclipse. I'm also able to create custom runtime images using jlink. The application could be run through the generated launcher.



Now, how do we create a runnable jar/exe with the stripped down JRE generated by jlink?










share|improve this question

























  • If you've built your run-time image, you can share them as jmods for the users consuming on Java9 or above that should work fine. I mean the example if JavaFX itself distributing jmods and .jar files for its consumption.

    – nullpointer
    Nov 23 '18 at 20:51














1












1








1








I have successfully followed the instructions mentioned in openjfx-docs (using maven)



I'm able to run it in my eclipse. I'm also able to create custom runtime images using jlink. The application could be run through the generated launcher.



Now, how do we create a runnable jar/exe with the stripped down JRE generated by jlink?










share|improve this question
















I have successfully followed the instructions mentioned in openjfx-docs (using maven)



I'm able to run it in my eclipse. I'm also able to create custom runtime images using jlink. The application could be run through the generated launcher.



Now, how do we create a runnable jar/exe with the stripped down JRE generated by jlink?







java javafx jlink javafx-11






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 23 '18 at 20:51









nullpointer

48.5k11101195




48.5k11101195










asked Nov 23 '18 at 20:13









Francis Fredrick ValeroFrancis Fredrick Valero

349513




349513













  • If you've built your run-time image, you can share them as jmods for the users consuming on Java9 or above that should work fine. I mean the example if JavaFX itself distributing jmods and .jar files for its consumption.

    – nullpointer
    Nov 23 '18 at 20:51



















  • If you've built your run-time image, you can share them as jmods for the users consuming on Java9 or above that should work fine. I mean the example if JavaFX itself distributing jmods and .jar files for its consumption.

    – nullpointer
    Nov 23 '18 at 20:51

















If you've built your run-time image, you can share them as jmods for the users consuming on Java9 or above that should work fine. I mean the example if JavaFX itself distributing jmods and .jar files for its consumption.

– nullpointer
Nov 23 '18 at 20:51





If you've built your run-time image, you can share them as jmods for the users consuming on Java9 or above that should work fine. I mean the example if JavaFX itself distributing jmods and .jar files for its consumption.

– nullpointer
Nov 23 '18 at 20:51












1 Answer
1






active

oldest

votes


















0














I just recently started experimenting with the jlink tool of Java 11 and can provide a partial answer. The java command in the bin directory of a custom runtime image works just like java of the standard JRE:




/path/to/custom/runtime/image/bin/java -jar myjar.jar




The custom runtime image must of course contain all the required dependencies, which I made sure by making myjar.jar a modularized JAR and by providing the switch




--add-modules myjar.jar




when creating the custom runtime image with jlink. With the additional switch




--launcher mylaunchername=modulename.of.my.jar/mypackage.with.MainClass




the directly executable binary




/path/to/custom/runtime/image/bin/mylaunchername




is generated. On my Mac, I created an alias and moved that to the desktop. That's as close to an application as I could get so far, with the following caveats:




  • The app icon is the standard green "exec"

  • double clicking on this icon launches a terminal, which is undesirable in case of a JavaFX application

  • And, of course, the "application" is not a single file, but the complete custom runtime image folder.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53452477%2fhow-to-create-a-modular-javafx11-runnable-jar-exe%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    I just recently started experimenting with the jlink tool of Java 11 and can provide a partial answer. The java command in the bin directory of a custom runtime image works just like java of the standard JRE:




    /path/to/custom/runtime/image/bin/java -jar myjar.jar




    The custom runtime image must of course contain all the required dependencies, which I made sure by making myjar.jar a modularized JAR and by providing the switch




    --add-modules myjar.jar




    when creating the custom runtime image with jlink. With the additional switch




    --launcher mylaunchername=modulename.of.my.jar/mypackage.with.MainClass




    the directly executable binary




    /path/to/custom/runtime/image/bin/mylaunchername




    is generated. On my Mac, I created an alias and moved that to the desktop. That's as close to an application as I could get so far, with the following caveats:




    • The app icon is the standard green "exec"

    • double clicking on this icon launches a terminal, which is undesirable in case of a JavaFX application

    • And, of course, the "application" is not a single file, but the complete custom runtime image folder.






    share|improve this answer




























      0














      I just recently started experimenting with the jlink tool of Java 11 and can provide a partial answer. The java command in the bin directory of a custom runtime image works just like java of the standard JRE:




      /path/to/custom/runtime/image/bin/java -jar myjar.jar




      The custom runtime image must of course contain all the required dependencies, which I made sure by making myjar.jar a modularized JAR and by providing the switch




      --add-modules myjar.jar




      when creating the custom runtime image with jlink. With the additional switch




      --launcher mylaunchername=modulename.of.my.jar/mypackage.with.MainClass




      the directly executable binary




      /path/to/custom/runtime/image/bin/mylaunchername




      is generated. On my Mac, I created an alias and moved that to the desktop. That's as close to an application as I could get so far, with the following caveats:




      • The app icon is the standard green "exec"

      • double clicking on this icon launches a terminal, which is undesirable in case of a JavaFX application

      • And, of course, the "application" is not a single file, but the complete custom runtime image folder.






      share|improve this answer


























        0












        0








        0







        I just recently started experimenting with the jlink tool of Java 11 and can provide a partial answer. The java command in the bin directory of a custom runtime image works just like java of the standard JRE:




        /path/to/custom/runtime/image/bin/java -jar myjar.jar




        The custom runtime image must of course contain all the required dependencies, which I made sure by making myjar.jar a modularized JAR and by providing the switch




        --add-modules myjar.jar




        when creating the custom runtime image with jlink. With the additional switch




        --launcher mylaunchername=modulename.of.my.jar/mypackage.with.MainClass




        the directly executable binary




        /path/to/custom/runtime/image/bin/mylaunchername




        is generated. On my Mac, I created an alias and moved that to the desktop. That's as close to an application as I could get so far, with the following caveats:




        • The app icon is the standard green "exec"

        • double clicking on this icon launches a terminal, which is undesirable in case of a JavaFX application

        • And, of course, the "application" is not a single file, but the complete custom runtime image folder.






        share|improve this answer













        I just recently started experimenting with the jlink tool of Java 11 and can provide a partial answer. The java command in the bin directory of a custom runtime image works just like java of the standard JRE:




        /path/to/custom/runtime/image/bin/java -jar myjar.jar




        The custom runtime image must of course contain all the required dependencies, which I made sure by making myjar.jar a modularized JAR and by providing the switch




        --add-modules myjar.jar




        when creating the custom runtime image with jlink. With the additional switch




        --launcher mylaunchername=modulename.of.my.jar/mypackage.with.MainClass




        the directly executable binary




        /path/to/custom/runtime/image/bin/mylaunchername




        is generated. On my Mac, I created an alias and moved that to the desktop. That's as close to an application as I could get so far, with the following caveats:




        • The app icon is the standard green "exec"

        • double clicking on this icon launches a terminal, which is undesirable in case of a JavaFX application

        • And, of course, the "application" is not a single file, but the complete custom runtime image folder.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 25 '18 at 15:44









        Martin MählyMartin Mähly

        315




        315
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53452477%2fhow-to-create-a-modular-javafx11-runnable-jar-exe%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            404 Error Contact Form 7 ajax form submitting

            How to know if a Active Directory user can login interactively

            Refactoring coordinates for Minecraft Pi buildings written in Python