Oracle Java 8
Если вы используете Oracle Java 8 или новее, как указал cayhorstmann в своем ответе, классы JavaFX теперь находятся в пути к классам выполнения по умолчанию для реализации Oracle Java. Вы можете просто запустить javac
и java
в своей программе, и классы JavaFX будут найдены, как и ожидалось, как и любой другой класс в JRE.
javac Fxservidor.java
java Fxservidor
OpenJDK 8
Если вы используете OpenJDK 8, вам (в настоящее время) необходимо собрать исходные коды JavaFX из репозитория OpenJFX и поместить результирующий файл jfxrt.jar в путь к классам, аналогично описанию для Java 7, определенному в этом ответе.
JavaFX 2.x / Java 7
Вы используете Java Compiler для компиляции программ JavaFX:
"%JDK_HOME%\bin\javac" -classpath "%JAVAFX_SDK_HOME%\rt\lib\jfxrt.jar" fxservidor.java
Замените заполнители JDK_HOME и JAVAFX_SDK_HOME на пути к установленному JDK и JavaFX SDK соответственно.
Пример пакетного сценария Windows для JavaFX 2.x предоставляет пакет разработки и развертывания командной строки здесь .
Вот команда, которую я выполнил на своем компьютере для компиляции вашего приложения (вам нужно настроить classpath для вашей среды):
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
Обратите внимание на токены ;.
, используемые для добавления текущего каталога в classpath команды выполнения java в Windows (если используется вариант 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, рекомендуется упаковывать приложения, используя соответствующие инструменты упаковки (например, Задачи ant для JavaFX , javafxpackager , javafx-maven-plugin или javafx-gradle-plugin ).
Если вы просто хотите выполнить небольшую программу для быстрой разработки и тестирования командной строки, эти дополнительные инструменты упаковки не нужны, и вы можете просто использовать простые шаги в этом ответе.