【问题标题】:How can I run a JavaFX program using Bazel?如何使用 Bazel 运行 JavaFX 程序?
【发布时间】:2020-04-24 23:23:18
【问题描述】:

我目前有一个非常琐碎的 JavaFX “Hello, World!”我正在尝试使用 Bazel 构建和运行的应用程序。我正在使用maven_install() 规则在我的WORKSPACE 文件中安装JavaFX 依赖项,如下所示:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

RULES_JVM_EXTERNAL_TAG = "3.2"
RULES_JVM_EXTERNAL_SHA = "82262ff4223c5fda6fb7ff8bd63db8131b51b413d26eb49e3131037e79e324af"

http_archive(
    name = "rules_jvm_external",
    strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
    sha256 = RULES_JVM_EXTERNAL_SHA,
    url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
)

load("@rules_jvm_external//:defs.bzl", "maven_install")

maven_install(
    artifacts = [
        "org.openjfx:javafx-controls:mac:11.0.1",
        "org.openjfx:javafx-graphics:mac:11.0.1",
        "org.openjfx:javafx-base:mac:11.0.1",
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

然后我尝试在BUILD 文件中构建一个java_binary,如下所示:

java_binary(
    name = "app",
    srcs = glob(["src/**/*.java"]),
    main_class = "com.dylanpowers.Main",
    deps = [
        "@maven//:org_openjfx_javafx_controls_mac",
        "@maven//:org_openjfx_javafx_graphics_mac",
        "@maven//:org_openjfx_javafx_base_mac"
    ]
)

在这种情况下,Main.java 实际上是我的应用程序中的唯一文件,因为我试图让程序运行。构建似乎与bazel build :app 一起工作正常,但是当我尝试用bazel run :app 运行它时,我收到以下错误:

Error: JavaFX runtime components are missing, and are required to run this application

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: java maven javafx bazel


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 2020-09-19
      • 2021-07-24
      • 2018-11-22
      • 2012-10-11
      • 2015-05-25
      • 2015-03-06
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      相关资源
      最近更新 更多