使用JavaFX 2.0编译代码(使用命令行)

我想知道如何从Windows Shell中使用JavaFX编译代码。

我在以下代码fxservidor.java:

public class Fxservidor extends Application {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

launch(args);

}

@Override

public void start(Stage primaryStage) {

primaryStage.setTitle("Hello World!");

Button btn = new Button();

btn.setText("Say 'Hello World'");

btn.setOnAction(new EventHandler<ActionEvent>() {

@Override

public void handle(ActionEvent event) {

Synthetizer os = new Synthetizer("Ximena");

}

});

StackPane root = new StackPane();

root.getChildren().add(btn);

primaryStage.setScene(new Scene(root, 300, 250));

primaryStage.show();

}

}

回答:

Oracle Java 8

如果您使用的是Oracle Java 8或更高版本(如cayhorstmann在其回答中所指出),则JavaFX类现在位于Oracle Java实现的默认运行时类路径上。您可以直接运行javac,并java在你的程序和JavaFX类如预期会被发现,就像在JRE其他类。

javac Fxservidor.java

java Fxservidor

OpenJDK的8

如果您使用的是OpenJDK 8,则(当前)将需要从OpenJFX存储库中构建JavaFX源,并将生成的jfxrt.jar放置在您的类路径中,类似于此答案中定义的Java 7的描述。

JavaFX 2.x / Java 7

您可以使用Java编译器来编译JavaFX程序:

"%JDK_HOME%\bin\javac" -classpath "%JAVAFX_SDK_HOME%\rt\lib\jfxrt.jar" fxservidor.java 

将JDK_HOME和JAVAFX_SDK_HOME占位符分别替换为已安装的JDK和JavaFX SDK的路径。

此处提供了JavaFX 2.x命令行开发和部署打包的示例Windows批处理脚本。

这是我在计算机上运行的用于编译您的应用程序的命令(您需要针对您的环境调整类路径):

javac -classpath "\Program Files\Oracle\JavaFX 2.1 Runtime\lib\jfxrt.jar" Fxservidor.java

这是我用来运行已编译类的命令:

java -classpath "\Program Files\Oracle\JavaFX 2.1 Runtime\lib\jfxrt.jar;." Fxservidor

请注意;.在Windows中用于将当前目录附加到java执行命令的类路径的令牌(如果使用Unix变体,则使用:.代替;.)。

示例应用

这是您的程序的修改后的版本,它将编译:

import javafx.application.Application;

import javafx.event.ActionEvent;

import javafx.event.EventHandler;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.layout.StackPane;

import javafx.stage.Stage;

public class Fxservidor extends Application {

public static void main(String[] args) {

launch(args);

}

@Override public void start(Stage primaryStage) {

primaryStage.setTitle("Hello World!");

Button btn = new Button();

btn.setText("Say 'Hello World'");

btn.setOnAction(new EventHandler<ActionEvent>() {

@Override

public void handle(ActionEvent event) {

System.out.println("Hello World");

}

});

StackPane root = new StackPane();

root.getChildren().add(btn);

primaryStage.setScene(new Scene(root, 300, 250));

primaryStage.show();

}

}

部署建议

如果将应用程序部署到用户,即使使用Java 8,也建议您使用相关的打包工具(例如JavaFX ant任务,javafxpackager,javafx-maven-plugin或javafx-gradle-plugin)打包应用程序。

如果您只是想对小型程序进行一些快速的命令行开发和测试,则不需要那些额外的打包工具,您只需使用此答案中的简单步骤即可。

以上是 使用JavaFX 2.0编译代码(使用命令行) 的全部内容, 来源链接: utcz.com/qa/408947.html

回到顶部