【发布时间】:2020-11-05 10:40:40
【问题描述】:
我想在 sublime-text 本身中运行包含 JavaFX 片段的 java 代码。
我使用的是 JDK 13,因此 JavaFX 没有与 JDK 本身捆绑在一起。我下载了 JavaFX 文件并将它们存储在 E:\javafx-sdk-15.0.1,我还创建了一个系统环境变量 PATH_TO_JAVAFX 来存储 "E:\javafx-sdk-15.0.1\lib",即 JavaFX 模块所在的目录。
我尝试在 Sublime-Text 3 中添加以下构建,但它不起作用。
{
"shell_cmd": "javac --module-path %PATH_TO_JAVAFX% --add-modules javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web \"${file}\"",
"file_regex": "^(..[^:]):([0-9]+):?([0-9]+)?:? (.)$",
"working_dir": "${file_path}",
"selector": "source.java",
"variants":
[
{
"name": "Run",
"shell_cmd": "javac --module-path %PATH_TO_JAVAFX% --add-modules javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web \"${file}\" && java --module-path %PATH_TO_JAVAFX% --add-modules javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web \"${file_path}/${file_base_name}\""
}
]
}
在 cmd 本身中使用 file、file_path 和 file_base_name 的实际值运行相同的命令,运行顺利。经过检查,我发现 %PATH_TO_JavaFX% 没有按照我的预期进行,它没有扩展到我设置的实际路径。
使用PATH_TO_JAVAFX 的实际值尝试相同的构建适用于正常编译,但运行版本仍然不起作用。我收到以下错误:
错误:无法找到或加载主类 D:\Codes\JAVA\HelloWorld_JavaFX.HelloWorld_JavaFX 原因: java.lang.ClassNotFoundException: D:\Codes\JAVA\HelloWorld_JavaFX.HelloWorld_JavaFX
这是我要运行的代码(taken from),
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorld_JavaFX extends Application {
@Override
public void start(Stage stage) {
String javaVersion = System.getProperty("java.version");
String javafxVersion = System.getProperty("javafx.version");
Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
Scene scene = new Scene(new StackPane(l), 640, 480);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
问题究竟出在哪里,如何解决?还有没有办法,我可以使用PATH_TO_JAVAFX,而不是写完整的路径?
注意:我使用的是 Windows。
【问题讨论】:
-
请遵守 java 命名约定
-
您可以考虑发布您的解决方案作为答案
标签: java javafx sublimetext3 configure