BloomRPC
我有要从命令行运行的JavaFx代码。 我尝试了命令javac -d app.java,它给了我一个错误:没有源文件,如果我尝试使用命令java -cp D:\ javafx-sdk-13.0.2 \ lib \ jfxrt.jar app.java。错误消息是找不到应用程序。 我在做什么错,我该如何解决,以使GUI应用程序从命令行运行?
答案 0 :(得分:3)
首先,请确保您知道如何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 的内容。
您可以单击打开按钮以在控制面板中打开它。然后按照以下步骤操作:
--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
这应该可以正常工作。
希望你学到了一些新东西,如果你有任何进一步的疑问,请在评论部分提及。
答案 1 :(得分:0)
这是我用来使其从命令行运行的命令
//进行编译:
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应用
答案 2 :(得分:0)
它的工作原理与从命令行运行任何其他Java程序没有什么不同。您只需要进入类app
所在的目录,然后键入以下命令:javac app.java
(如果目录中只有该类)。如果有多个Java文件,请输入javac *.java
。然后,在编译文件后,键入java,然后键入其中包含main方法的类的名称。您的情况看起来像java app
。这应该从命令行运行您的javafx代码。另外,类名应遵循PascalCase命名约定。