甲骨文的Java 8
如果您使用的是Oracle的Java 8或更新版本,在他的回答中指出cayhorstmann,JavaFX類現在在Oracle Java實現的默認運行時類路徑上。您可以在程序上運行javac
和java
,JavaFX類將按預期方式發現,就像JRE中的其他類一樣。
javac Fxservidor.java
java Fxservidor
的OpenJDK 8
如果您使用的OpenJDK 8,你會(目前)從的OpenJFX庫需要build the JavaFX sources和並把得到的jfxrt.jar在classpath類似的說明在這個答案中定義了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 。
提供了用於JavaFX 2.x命令行開發和部署打包的示例窗口批處理腳本here。
這是我跑我的機器上編譯應用程序的命令(您需要調整您的環境類路徑):
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
注意用於追加當前目錄的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);
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
}
部署建議
如果要部署應用程序的用戶,甚至是與Java 8,建議您使用相關包裝工具(如JavaFX ant tasks,javafxpackager, javafx-maven-plugin或javafx-gradle-plugin)。
如果你只是想做一些快速的命令行開發和測試,小程序,那些額外的打包工具是不需要的,你可以使用這個答案中的簡單步驟。
錯誤:無法找到符號應用程序 – Jhuaraya 2012-02-24 19:06:30
我更新了答案,以包含示例代碼中缺少的導入語句,註釋掉未應用的Synthetizer類,以便代碼可以編譯並添加我用於編譯和運行的確切命令更新的程序。 – jewelsea 2012-02-24 20:59:31