【问题标题】:Invalid version of javafx.stage.Stage for JavaFX11JavaFX11 的 javafx.stage.Stage 版本无效
【发布时间】:2019-03-01 20:58:30
【问题描述】:

我在基于this 示例的新Java SDK 11 中创建了项目:

EntryPoint.java

package com.example;

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Label;

public class EntryPoint extends javafx.application.Application {

  public static void main (String[] args) {
    launch();
  }

  public void start(Stage stage) {
    Label label = new Label("Hello, JavaFX11!");
    Scene scene = new Scene(label, 640, 480);
    stage.setScene(scene);
    stage.show();
  }
}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>Example</artifactId>
  <version>1.0-SNAPSHOT</version>

  <dependencies>
    <!-- https://mvnrepository.com/artifact/org.openjfx/javafx-controls -->
    <dependency>
      <groupId>org.openjfx</groupId>
      <artifactId>javafx-controls</artifactId>
      <version>11</version>
    </dependency>
  </dependencies>
</project>

没有来自 IntellIJ IDEA 方面的警告。当我试图编译时,我得到了错误(原件不是英文的,所以它可能与英文原件不同):

Error:(7, 20) java: Can not access to javafx.stage.Stage

Class C:\Users\XXXXX\.m2\repository\org\openjfx\javafx-graphics\11\javafx-graphics-11-win.
jar(javafx/stage/Stage.class) is invalid.

Class/File Version is 54.0; 52.0 is required.
Delete it, or set right directory.

更新

尝试设置 JAVA_HOME 系统变量:

【问题讨论】:

  • 确保将 JAVA_HOME 环境变量设置为 JDK 11。
  • 我不是 Maven 专家,但所需的 Java 版本不应该出现在某个地方,因为它毕竟是一个依赖项吗?这样可以避免此类问题。对我来说,“Error:(7, 20) java: Can not access to javafx.stage.Stage”看起来不像标准的 javac 消息,所以如果构建工具使用嵌入式编译器,它需要更新 Java 11……
  • @nullpointer,我试过了——零效应。问题字段中的屏幕截图是否一切正确?
  • 可能只是确保您的mvnrc 包含正确的java 版本和在pom 中定义的maybe try using an explicit compiler plugin configuration,以确保编译中使用的java 版本仅为11。

标签: java maven javafx java-11 javafx-11


【解决方案1】:

以防万一您可以尝试为 Stage 添加 maven 依赖项:

 <dependency>
      <groupId>org.openjfx</groupId>
      <artifactId>javafx-graphics</artifactId>
      <version>11</version>
  </dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 2014-10-27
    • 2018-07-24
    • 2021-07-23
    • 2021-12-10
    • 2013-11-22
    相关资源
    最近更新 更多