Hi,

What you've discovered is exactly how the Java launcher is intended to work (we have unit tests that verify this fact). The launcher recognizes a JavaFX application by checking whether the class to be launched extends javafx.application.Application. So this isn't a side effect, but an intentional behavior.

The advice given in the JIRA is what you will need to do before accessing JavaFX:

1) Call Application.launch(MyAppClass.class)
2) Call "new JFXPanel()"

-- Kevin


Sandipan Razzaque wrote:
Kevin/Jonathan -

Steve's example in the Jira captures perfectly what I was encountering in Java, and I've been trying to boil it down into a minimal failing example - reconciling it with what I've experienced in dynamic languages.

Turns out it's about whether or not you extend Application. This leads me to believe that it's something in Application's classloading that enables your example to work cleanly.

Try your class out again - with the minor edits I've made below:

public class Example /* extends Application */ {
   public static void main(String[] args) {
//this is called from a static block in javafx.scene.control.Control
       PlatformImpl.setDefaultPlatformUserAgentStylesheet();

       Application.launch(args);
   }

   /*@Override*/
   public void start(final Stage primaryStage) throws Exception {
   }
}

Cheers,
SR



Sandipan Razzaque | www.sandipan.net <http://www.sandipan.net>


On Mon, Apr 7, 2014 at 9:42 PM, Richard Bair <richard.b...@oracle.com <mailto:richard.b...@oracle.com>> wrote:

    Yes, this is one of the few things that I just hate about IDEA.

    On Apr 7, 2014, at 6:00 PM, Kevin Rushforth
    <kevin.rushfo...@oracle.com <mailto:kevin.rushfo...@oracle.com>>
    wrote:

    > I can't speak to other IntelliJ issues, but the root cause of
    this particular one is the same thing that Debbie ran into last
    week -- IntelliJ doesn't launch programs using the standard Java
    launcher. For whatever reason, it uses its own launcher. This
    might be worth raising with JetBrains.
    >
    > -- Kevin
    >
    >
    > Jonathan Giles wrote:
    >> Kevin,
    >>
    >> Yes, that is the program I used, and yes, I get the 'Toolkit
    not initialized' exception. I am running IntelliJ, so that is the
    reason. I switched over to Eclipse and the code run as expected.
    >>
    >> I am slightly bothered by the occasional failures that seem to
    be IntelliJ-specific. I have a gut feeling that it doesn't always
    run all tests (or that it runs them slightly differently to get
    different results than when run on the command line). Does anyone
    know why this is?
    >>
    >> I'm actually most at home in Eclipse, so perhaps I should
    switch to that as my primary IDE for OpenJFX development.
    >>
    >> -- Jonathan
    >>
    >> On 8/04/2014 11:29 a.m., Kevin Rushforth wrote:
    >>> Just to make sure we are running the same program, the one I
    ran to verify that RT-33954 is fixed was the simple test program
    in the comments of that bug. Here it is (with the imports omitted
    for brevity).
    >>>
    >>> public class Example extends Application {
    >>>   public static void main(String[] args) {
    >>>       //this is called from a static block in
    javafx.scene.control.Control
    >>>       PlatformImpl.setDefaultPlatformUserAgentStylesheet();
    >>>
    >>>       Application.launch(args);
    >>>   }
    >>>
    >>>   @Override
    >>>   public void start(final Stage primaryStage) throws Exception {
    >>>   }
    >>> }
    >>>
    >>> The above program runs fine for me with no exception.
    >>>
    >>> Jonathan: are you seeing something different? Or perhaps
    running a different example?
    >>>
    >>> NOTE: if you run this from IntelliJ it will not work. I
    verified that with Debbie last week (on a different issue), which
    may be why you are seeing a problem. Running it from command line,
    from NB, or from Eclipse works.
    >>>
    >>> -- Kevin
    >>>
    >>>
    >>> Jonathan Giles wrote:
    >>>> Firstly, I agree - this does seem to still be reproducible
    despite Kevin's comment that it should have been resolved in
    JavaFX 8.0 due to RT-28754
    <https://javafx-jira.kenai.com/browse/RT-28754>, so that is
    troubling. I'll leave Kevin to comment on that.
    >>>>
    >>>> Secondly, RT-33954 was closed as a duplicate of RT-28754
    <https://javafx-jira.kenai.com/browse/RT-28754>, so it would be
    better to leave RT-33954 closed and move discussion (including
    what you recently posted) into RT-28754
    <https://javafx-jira.kenai.com/browse/RT-28754>. The discussion
    can start in there and most probably a new bug will need to be
    opened (as RT-28754
    <https://javafx-jira.kenai.com/browse/RT-28754> did result in a
    code change that at one point appears to have fixed the problem,
    so we're possibly dealing with a regression).
    >>>>
    >>>> Thirdly, whether this is a suitable bug for someone learning
    the ropes is debatable. I'll leave Kevin to offer his thoughts,
    but perhaps you can propose a patch that resolves this issue for
    you in your test scenarios. Also, a good starting point is to
    develop a simple test application that helps to demonstrate this
    issue (preferably the test case is a single class with no
    dependencies), and which you can then share in the jira issue via
    copy/paste into a comment.
    >>>>
    >>>> Fourthly, to be a contributor in the OpenJDK requires you to
    follow a process to get the paperwork in order. It is wise to get
    that started as soon as possible, as it can sometimes take a
    while. Here's a link to the process:
    http://openjdk.java.net/contribute/ The main thing is the OCA.
    >>>>
    >>>> Finally, welcome! :-)
    >>>>
    >>>> -- Jonathan
    >>>>
    >>>> On 6/04/2014 1:06 p.m., Sandipan Razzaque wrote:
    >>>>> Hi JavaFX devs!
    >>>>>
    >>>>> I was wondering how people felt about re-opening this bug? I
    don't believe
    >>>>> it has been fixed (see my comment).
    >>>>>
    >>>>> I'm also happy to work on it. But, let me know if you think
    my time would
    >>>>> be better spent elsewhere. I'm keen to take on a small bug
    to just get the
    >>>>> hang of the process and community (I'll be stumbling with
    mercurial along
    >>>>> the way too!). I think this bug is an ideal candidate for
    someone just
    >>>>> learning the ropes.
    >>>>>
    >>>>> https://javafx-jira.kenai.com/browse/RT-33954
    >>>>>
    >>>>> Cheers,
    >>>>> SR
    >>>>>
    >>>>> Sandipan Razzaque | www.sandipan.net <http://www.sandipan.net>
    >>>>
    >>


Reply via email to