Hi Kevin,

Thanks for this clarifiacation! I'm also interested in this kind of information 
as I'm in the process of upgrading Drombler FX to JavaFX 8 and Drombler FX 
comes with a custom Maven Plugin, which makes sure the application can start.

Another related question:

While the Ant task for JavaFX 2.x added the following Manifest entries:

JavaFX-Version: 2.2
JavaFX-Application-Class: myPackage.MyApplication
JavaFX-Class-Path: 
Main-Class: com/javafx/main/Main


the Ant task for JavaFX 8 added the following Manifest entries:
JavaFX-Version: 2.2
Class-Path: 
Main-Class: myPackage.MyApplication

So it seems "JavaFX-Application-Class" is not used anymore if one doesn't use 
com.javafx.main.Main to start the JavaFX application, and "JavaFX-Class-Path" 
has been replaced with the standard "Class-Path" entry.

The "JavaFX-Version" seems still to be needed, however. For what is it used? An 
why is this version set to "2.2" for JavaFX 8 applications? Shouldn't it be 
"8.0" or something?
Can I get this version from somewhere? Either the JavaFX API or from the 
ant-javafx.jar?

-Florian

Am Mittwoch, 8. Januar 2014, 06.45:36 schrieb Kevin Rushforth:
> Hi Scott,
> 
> The Java 8 launcher has been modified to recognize JavaFX applications 
> -- that is, classes that extend javafx.application.Application -- and 
> launch them directly by calling into the JavaFX launcher code. See 
> JDK-8001533 <https://bugs.openjdk.java.net/browse/JDK-8001533>. This is 
> why the com.javafx.main.Main class is no longer needed.
> 
> Somewhat independent of this, for standalone applications (but not 
> applets or web start applications) the JavaFX launcher code will now 
> call the main() method if it is present (see RT-28755 
> <https://javafx-jira.kenai.com/browse/RT-28755>), but will still happily 
> launch the application if it isn't. So the main() method is still 
> optional. If present, it must call Application.launch() in order to 
> launch the application.
> 
> So yes, it does seem that Netbeans should modify the wording of their 
> javadoc comment for the main() method of a JavaFX application.
> 
> -- Kevin
> 
> 
> Scott Palmer wrote:
> > Based on the discussion I saw in the comments for RT-34236 I discovered
> > that using com.javafx.main.Main is not the way JavaFX 8 is supposed to
> > work. There are comments that read, "...making sure their Application class
> > has a main that calls launcher(String[] args)."
> >
> > This seems to imply that a main method is now required in the Application
> > class when writing apps for JavaFX 8.
> >
> > Is this correct?
> >
> > If so. Somebody should tell NetBeans to stop injecting this comment in the
> > generated application class for JavaFX projects:
> > /**
> >  * The main() method is ignored in correctly deployed JavaFX application.
> >  * main() serves only as fallback in case the application can not be
> >  * launched through deployment artifacts, e.g., in IDEs with limited FX
> >  * support. NetBeans ignores main().
> >  *
> >  * @param args the command line arguments
> >  */
> >
> > Are the changes to the launching of JavaFX apps docuemtned somewhere?  Is
> > using javafxpackager or the ant task the *only* supported way of creating
> > JavaFX applications?  I'm currently using my own stub that runs on Java 7
> > and adds the jfxrt.jar to the classpath if required and then calls the
> > launch method on the Applicaiton class.
> >
> > Regards,
> >
> > Scott
> >   

Reply via email to