Oracle Java 8
Se si utilizza Oracle Java 8 o più recente, come ha sottolineato cayhorstmann nella sua risposta, le classi JavaFX sono ora sul percorso di classe di runtime predefinito per un'implementazione Oracle Java. Puoi semplicemente eseguire javac
e java
sul tuo programma e le classi JavaFX verranno trovate come previsto, proprio come qualsiasi altra classe in JRE.
javac Fxservidor.java
java Fxservidor
OpenJDK 8
Se si utilizza OpenJDK 8, voi (al momento) è necessario build the JavaFX sources dal repository OpenJFX ed e posizionare il jfxrt.jar risultante sul classpath simile alla descrizione per Java 7 definito in questa risposta.
JavaFX 2.x/Java 7
È possibile utilizzare il Java Compiler per compilare i programmi JavaFX:
"%JDK_HOME%\bin\javac" -classpath "%JAVAFX_SDK_HOME%\rt\lib\jfxrt.jar" fxservidor.java
Sostituire i segnaposto JDK_HOME e JAVAFX_SDK_HOME con i percorsi rispettivamente al vostro installati JDK e JavaFX SDK .
Un esempio di script batch di Windows per JavaFX 2.x sviluppo della riga di comando e pacchetto di distribuzione è fornito here.
Ecco un comando ho incontrato sulla mia macchina per compilare l'applicazione (è necessario regolare il classpath per l'ambiente):
javac -classpath "\Program Files\Oracle\JavaFX 2.1 Runtime\lib\jfxrt.jar" Fxservidor.java
E qui è un comando che ho usato per eseguire la classe compilata:
java -classpath "\Program Files\Oracle\JavaFX 2.1 Runtime\lib\jfxrt.jar;." Fxservidor
Note le ;.
token utilizzati per aggiungere la directory corrente al classpath del comando di esecuzione di java in Windows (se si utilizza una variante Unix, quindi utilizzare :.
anziché ;.
).
Esempio App
Ecco una versione modificata del programma, che compilerà:
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);
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
}
Raccomandazione Deployment
Se si distribuisce applicazioni agli utenti, anche con Java 8, si consiglia di impacchettare le applicazioni utilizzando gli strumenti di imballaggio pertinenti (ad es. JavaFX ant tasks, javafxpackager, javafx-maven-plugin o javafx-gradle-plugin).
Se si desidera solo eseguire rapidamente lo sviluppo e il test della riga di comando, di piccoli programmi, questi strumenti di packaging aggiuntivi non sono necessari e si può semplicemente utilizzare i semplici passaggi di questa risposta.
Errore: Impossibile trovare il simbolo Applicazione – Jhuaraya
Ho aggiornato la risposta per includere le istruzioni di importazione mancanti dal codice di esempio, commentare la classe Synthetizer non supportata in modo che il codice possa compilare e aggiungere il comando esatto utilizzato per compilare ed eseguire programma aggiornato. – jewelsea