如何从命令行运行 JavaFx 应用程序

M.S*_*jid 5 java javafx

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);
   }
}
Run Code Online (Sandbox Code Playgroud)

我有这个 JavaFx 代码,我想从命令行运行它。我尝试了命令 javac -d app.java 它给了我一个错误:没有源文件,如果我尝试使用命令 java -cp D:\javafx-sdk-13.0.2\lib\jfxrt.jar app.java。错误消息是找不到应用程序。我做错了什么以及如何修复它以便 GUI 应用程序从命令行运行?

Mee*_*hah 5

首先,请确保您知道如何运行常规的java应用程序

注意:如果您使用的是 JDK 10 或更低版本,则可以像运行其他 java 程序一样直接运行 javafx 应用程序,因为 JDK 10 或更低版本中预装了 javafx。要检查 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 中的类文件的更多信息:Java 类文件

之后,您需要 java 来解释并运行您刚刚使用上述语法创建的 .class 文件。

为此,您只需在上述代码中从“javac”中删除“c”,并删除 .java 扩展名。其他事情保持不变。

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

这应该可以完美工作并帮助您从 cmd 运行 javafx 应用程序。

现在,如果您觉得一遍又一遍地编写这段代码是一种负担。您可以执行以下操作。

环境变量可以帮助您将上述代码编译成一个单词,您可以在命令行中键入该单词,并用 % 括起来。

要设置环境变量,请转到屏幕左下角的搜索栏。然后在搜索栏中输入环境变量。

你应该看到类似这样的东西。

您可以单击打开按钮以在控制面板中打开它。然后按照下列步骤操作:

  1. 转到选项卡:高级,这可能是您打开它时的默认选项卡。
  2. 单击右下角的“环境变量”。
  3. 单击第二个底部面板中的“新建”。
  4. 将“变量名称”设置为“JAVA_FX”
  5. 设置“变量值”如下:

--module-path "Path to your javafx lib folder" --add-modules javafx.controls,javafx.fxml 请在您下载的 openjfx 文件夹中写入 lib 文件夹的完整正确路径。并确保它在双引号内

完成后,单击“确定”,然后关闭控制面板。现在您需要重新启动命令行应用程序。如果不重新启动,则不会显示您刚刚设置的环境变量。只需关闭它并再次打开即可。

现在在命令行中输入以下内容: echo %JAVA_FX%

这应该会显示您刚刚设置的变量值。如果它打印 JAVA_FX,那么请考虑重新参考上述步骤,并检查在环境变量的变量值中键入 lib 文件夹的路径时是否存在任何路径错误。

如果它显示正确的值,请继续:

现在您可以在命令行中键入以下命令。确保您位于保存 .java 文件的文件夹中,如果没有,请使用前面提到的“cd”命令直接进入该文件夹:

javac %JAVA_FX% YourFile.java 确保将“YourFile”名称更改为您的 java 文件的名称。

然后它应该将java文件编译成java类文件。然后在命令行中输入以下内容: java %JAVA_FX% YourFile

这应该可以正常工作。

希望您学到了新的东西,如果您还有任何疑问,请在评论部分提出。