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

标签 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);
   }
}

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

最佳答案

首先,请确保您知道如何run a regular java application .
注意:如果您使用的是 JDK 10 或更低版本,则可以像使用其他 Java 程序一样直接运行 javafx 应用程序,因为 javafx 预装在 JDK 10 或更低版本中。为了检查您的 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 Class File .
在此之后,您需要 java 来解释和运行您刚刚使用上述语法创建的 .class 文件。
为此,您只需要从上面代码中的“javac”中删除“c”,并删除 .java 扩展名。其他事情保持不变。java --module-path "Path to your javafx lib folder" --add-modules javafx.controls,javafx.fxml YourFile这应该可以完美运行并帮助您从 cmd 运行您的 javafx 应用程序。
现在,以防您一次又一次地编写此代码感到负担。您可以执行以下操作。
环境变量可以帮助您将上述代码编译成一个单词,您可以在命令行中输入该单词并用 % 括起来。
为了设置您的环境变量,请转到屏幕左下角的搜索栏。然后输入 环境变量 在搜索栏中。
您应该会看到类似 this 的内容.
您可以单击打开按钮以在控制面板中打开它。然后按照以下步骤操作:

  • 转到选项卡:高级,这可能是您打开时的默认选项卡。
  • 点击右下角的“环境变量”。
  • 在第二个底部面板中单击“新建”。
  • 将“变量名”设置为“JAVA_FX”
  • 设置“变量值”如下:
  • --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这应该可以正常工作。
    希望你学到了一些新东西,如果你有任何进一步的疑问,请在评论部分提及。

    关于java - 如何从命令行运行 JavaFx 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62129569/

    相关文章:

    JavaFX - FlowPane 自动调整大小

    java - 为什么 java.util.Stack 是使用 Vector 而不是 Arraylist 实现的

    JavaFX 新场景或新 Pane

    javafx - 从内部动态调整节点大小

    Java 泛型和集合集

    java - bean 类 [org.apache.commons.dbcp.BasicDataSource] 的属性 'connectionProperties' 无效

    java - 在布局中添加按钮时出现 java.lang.reflect.InitationTargetException

    JavaFX:如何最好地将标签放置在形状的中心?

    java - 如果选项有效但否则如果不

    JavaFX 2.2 使用带有 FXML 的第二个窗口