首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加崇高文本构建系统,编译和运行JavaFX代码

添加崇高文本构建系统,编译和运行JavaFX代码
EN

Stack Overflow用户
提问于 2020-11-05 10:40:40
回答 2查看 593关注 0票数 0

我想在崇高文本本身中运行包含JavaFX片段的java代码。

我使用的是JDK 13,因此JavaFX并不与JDK本身捆绑在一起。我下载了JavaFX文件并将它们存储在E:\javafx-sdk-15.0.1中,我还创建了一个系统环境变量E:\javafx-sdk-15.0.1来存储"E:\javafx-sdk-15.0.1\lib",即JavaFX模块所在的目录。

我试着在Sublime 3中添加以下构建,但它没有工作。

代码语言:javascript
复制
    {
        "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中使用filefile_pathfile_base_name的实际值运行相同的命令,运行平稳。在检查时,我发现%PATH_TO_JavaFX%没有做我期望的事情,也没有扩展到我设置的实际路径。

使用PATH_TO_JAVAFX的实际值尝试相同的构建对于正常编译是有效的,但是运行版本仍然不能工作。我得到了以下错误:

错误:无法找到或加载由: D:\Codes\JAVA\HelloWorld_JavaFX.HelloWorld_JavaFX : D:\Codes\JAVA\HelloWorld_JavaFX.HelloWorld_JavaFX引起的主类java.lang.ClassNotFoundException

这是我试图运行的代码(摘自),

代码语言:javascript
复制
    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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-17 12:51:54

我所认为的“崇高文本”的问题仅仅是Java问题,如果我考虑过这个问题的话,Google搜索很少能很快解决这个问题。

因此,多亏了这个Stackoverflow线程的一些启示,并且主要是通过尝试,我能够成功地在崇高文本中构建,而不需要添加任何插件或对崇高文本进行任何修改。

这就是我现在构建文件的样子。

代码语言:javascript
复制
    {
        "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 -cp \"${file_path}\" --module-path %PATH_TO_JAVAFX% --add-modules javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web \"${file_base_name}\"",
        "file_regex": "^(..[^:]):([0-9]+):?([0-9]+)?:? (.)$",
        "working_dir": "${file_path}",
        "selector": "source.java",
    
        "variants":
        [
            {
                "name": "Compile",
                "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}\""
            },
            {
                "name": "Run",
                "shell_cmd": "java -cp \"${file_path}\" --module-path %PATH_TO_JAVAFX% --add-modules javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web \"${file_base_name}\""
            }
        ]
    }

仍然找不到一种简单的方法使环境变量工作,所以必须添加完整的路径代替%PATH_TO_JAVAFX%

票数 0
EN

Stack Overflow用户

发布于 2020-11-06 20:48:58

我建议使用像Gradle这样的构建工具,并在build.gradle文件中使用build.gradle插件。让SublimeText运行gradle构建。还有高级文本的Gradle插件。您也可以使用Maven,尽管我发现它要麻烦得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64695494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档