簡體   English   中英

如何從命令行運行 JavaFx 應用程序

[英]How to run JavaFx application from command line

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

public class app extends Application
{
   @Override
   public void start(final Stage stage) throws Exception
   {
      final Circle circ = new Circle(40, 40, 30);
      final Group root = new Group(circ);
      final Scene scene = new Scene(root, 400, 300);

      stage.setTitle("Hello JavaFX 2.0!");
      stage.setScene(scene);
      stage.show();
   }


   public static void main(String[] arguments)
   {
      Application.launch(arguments);
   }
}

我有這個 JavaFx 代碼,我想從命令行運行。 I tried the command javac -d app.java it gives me an error: no source files and if I try with the command java -cp D:\javafx-sdk-13.0.2\lib\jfxrt.jar app.java. 錯誤消息是找不到應用程序。 我做錯了什么,如何修復它以便 GUI 應用程序從命令行運行?

首先,請確保您知道如何運行常規的 java 應用程序

注意:如果您使用的是 JDK 版本 10 或更低版本,則可以像運行其他 java 程序一樣直接運行 javafx 應用程序,因為 javafx 預安裝在 JDK 或以下版本中。 為了檢查您的 JDK 版本,請在命令行中鍵入以下命令:

javac -version

請注意,本教程僅適用於 WINDOWS。

如前所述,您需要以下代碼從命令行編譯 javafx 應用程序:

第1步:輸入“cd”,然后將路徑從“C:”(C盤)開始寫入你上面保存代碼的位置為.java格式。

第 2 步:然后您需要按 Enter,以便命令行打開該路徑。 如果它產生錯誤,請重新檢查您傳遞的路徑。 如果路徑在某處之間有空格。 請在寫入 cd 后用雙引號 (" ") 將其括起來。 然后再試一次。

第 3 步:在您的.java 文件所在文件夾的命令行中鍵入以下內容:

javac --module-path "Path to your javafx lib folder" --add-modules javafx.controls,javafx.fxml YourFile.java

在上面的雙引號中,您需要在您從openjfx.io安裝的 javafx-sdk 文件夾中寫入 lib 文件夾的路徑。

上面的代碼會將你的.java文件編譯成.class文件,一種可以被JVM(java虛擬機)解釋的代碼格式。 更多關於 java 中 class 文件的信息: Java Class 文件

在此之后,您需要 java 來解釋和運行您剛剛使用上述語法創建的.class 文件。

為此,您只需在上述代碼中從“javac”中刪除“c”,並刪除.java 擴展名。 其他事情保持不變。

java --module-path "Path to your javafx lib folder" --add-modules javafx.controls,javafx.fxml YourFile

這應該可以完美運行並幫助您從 cmd 運行 javafx 應用程序。

現在,如果您覺得一次又一次地編寫此代碼是一種負擔。 您可以執行以下操作。

環境變量可以幫助您將上述代碼編譯成一個單詞,您可以在命令行中鍵入該單詞並用 % 包圍。

為了設置您的環境變量,go 到屏幕左下角的搜索欄。 然后在搜索欄中輸入環境變量

你應該看到類似這樣的東西。

您可以單擊打開按鈕以在控制面板中打開它。 然后按照以下步驟操作:

  1. Go 到選項卡:高級,這可能是您打開它時的默認選項卡。
  2. 點擊右下角的“環境變量”。
  3. 單擊第二個底部面板中的“新建”。
  4. 將“變量名”設置為“JAVA_FX”
  5. 將“變量值”設置如下:

--module-path "Path to your javafx lib folder" --add-modules javafx.controls,javafx.fxml請在您打開的.fx文件夾中寫入您下載的lib文件夾的完整正確路徑並確保它在雙引號內

完成后,單擊“確定”,然后關閉控制面板。 現在您需要重新啟動命令行應用程序。 如果不重新啟動,它不會顯示您剛剛設置的環境變量。 只需關閉它並再次打開它。

現在在命令行中輸入以下內容: echo %JAVA_FX%

這應該會顯示您剛剛設置的變量值。 如果它打印 JAVA_FX,那么請考慮重新參考上述步驟並檢查您在環境變量的變量值中鍵入 lib 文件夾的路徑時是否存在任何路徑錯誤。

如果它顯示正確的值,請繼續:

現在您可以在命令行中鍵入以下命令。 確保您在保存.java 文件的文件夾中,如果沒有,請使用前面提到的“cd”命令直接進入該文件夾:

javac %JAVA_FX% YourFile.java確保將“YourFile”名稱更改為 java 文件的名稱。

然后它應該將 java 文件編譯成 java class 文件。 然后在命令行中鍵入以下內容: java %JAVA_FX% YourFile

這應該可以正常工作。

希望您學到了新的東西,如果您有任何進一步的疑問,請在評論部分提出。

這是我用來讓它從命令行運行的命令

// 編譯:

javac --module-path D:\javafx-sdk-13.0.2\lib --add-modules javafx.controls app.java

// 跑步:

java --module-path D:\javafx-sdk-13.0.2\lib --add-modules javafx.controls app

它與從命令行運行任何其他 java 程序沒有任何不同。 您只需進入 class app所在的目錄,然后鍵入以下命令: javac app.java如果目錄中只有 class。 如果有多個 java 文件,請鍵入javac *.java 然后,編譯完文件后,輸入 java,然后輸入 class 的名稱,其中包含 main 方法。 在您的情況下,這看起來像java app 這應該從命令行運行您的 javafx 代碼。 另一方面,class 名稱應遵循PascalCase命名約定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM