首先创建一个JavaFX文件,Hello World
1package test; 2 3import javafx.application.Application; 4import javafx.event.ActionEvent; 5import javafx.event.EventHandler; 6import javafx.scene.Scene; 7import javafx.scene.control.Button; 8import javafx.scene.layout.StackPane; 9import javafx.stage.Stage; 10 11/** 12 * 13 * @author Administrator 14 */ 15public class Test extends Application { 16 17 @Override 18 public void start(Stage primaryStage) { 19 Button btn = new Button(); 20 btn.setText("Say 'Hello World'"); 21 btn.setOnAction(new EventHandler<ActionEvent>() { 22 23 @Override 24 public void handle(ActionEvent event) { 25 System.out.println("Hello World!"); 26 } 27 }); 28 29 StackPane root = new StackPane(); 30 root.getChildren().add(btn); 31 32 Scene scene = new Scene(root, 300, 250); 33 34 primaryStage.setTitle("Hello World!"); 35 primaryStage.setScene(scene); 36 primaryStage.show(); 37 } 38 39 /** 40 * @param args the command line arguments 41 */ 42 public static void main(String[] args) { 43 launch(args); 44 } 45 46}
将文件编译成Class
打成Runnable的jar
执行命令:
javafxpackager -deploy -appclass test.Test -native image -srcdir jardir -outdir outdir -outfile Test
test.Test为Main函数类,jardir为打包的JAR包路径,outdir为打好包的输出路径,Test为生成的exe文件名
会在输出目录下产生bundles文件夹,里面结构如下

这时候点击Test就可以运行了~
打Jar包命令:javafxpackager -createjar -appclass test.Test -srcdir classes -outdir jardir -outfile Test.jar
这个现在IDE一般都支持。
下面是javafxpackager帮助提示:
1用法: java [-options] class [args...] 2 (执行类) 3 或 java [-options] -jar jarfile [args...] 4 (执行 jar 文件) 5其中选项包括: 6 -d32 使用 32 位数据模型 (如果可用) 7 -d64 使用 64 位数据模型 (如果可用) 8 -server 选择 "server" VM 9 默认 VM 是 server. 10 11 -cp <目录和 zip/jar 文件的类搜索路径> 12 -classpath <目录和 zip/jar 文件的类搜索路径> 13 用 ; 分隔的目录, JAR 档案 14 和 ZIP 档案列表, 用于搜索类文件。 15 -D<名称>=<值> 16 设置系统属性 17 -verbose:[class|gc|jni] 18 启用详细输出 19 -version 输出产品版本并退出 20 -version:<值> 21 需要指定的版本才能运行 22 -showversion 输出产品版本并继续 23 -jre-restrict-search | -no-jre-restrict-search 24 在版本搜索中包括/排除用户专用 JRE 25 -? -help 输出此帮助消息 26 -X 输出非标准选项的帮助 27 -ea[:<packagename>...|:<classname>] 28 -enableassertions[:<packagename>...|:<classname>] 29 按指定的粒度启用断言 30 -da[:<packagename>...|:<classname>] 31 -disableassertions[:<packagename>...|:<classname>] 32 禁用具有指定粒度的断言 33 -esa | -enablesystemassertions 34 启用系统断言 35 -dsa | -disablesystemassertions 36 禁用系统断言 37 -agentlib:<libname>[=<选项>] 38 加载本机代理库 <libname>, 例如 -agentlib:hprof 39 另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help 40 -agentpath:<pathname>[=<选项>] 41 按完整路径名加载本机代理库 42 -javaagent:<jarpath>[=<选项>] 43 加载 Java 编程语言代理, 请参阅 java.lang.instrument 44 -splash:<imagepath> 45 使用指定的图像显示启动屏幕 46有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。