使用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.javajava 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