Spark Java Web 框架与 Java 17 兼容吗?

问题描述 投票:0回答:3

Spark - Java 8 的小型 Web 框架

https://sparkjava.com/

总是提到这个框架是针对Java 8的。有人能确认这个框架是向前兼容的吗?我们可以在 Java 17 中使用这个框架的旧版本吗?或者我们是否需要使用最新版本的 Java 17 框架?这个框架版本有 Java 兼容性矩阵吗?如果我们有这样的东西,请帮我提供链接。

我阅读了文档,但没有发现这是否向前兼容。我也没有找到任何 Java 兼容性矩阵。

java java-17 spark-java
3个回答
1
投票

自 2022 年 12 月 9 日以来,我一直在 Java 17 的生产中使用 SparkJava,并且没有遇到任何 Java 17 相关问题。

在此之前,我们从 2020-04-06 开始使用 Java 11。

我在生产环境中看到的唯一区别是 Java 17 使用的内存比 Java 11 少。

自己尝试一下,看看是否有任何问题。这对我们来说非常有用。


1
投票

让我们看看而不是猜测。

sparkjava.com
演示要使用的依赖项是:

<dependency>
    <groupId>com.sparkjava</groupId>
    <artifactId>spark-core</artifactId>
    <version>2.9.4</version>
</dependency>

如果我们打开它

pom.xml
,我们会看到这个:

<properties>
  <java.version>1.8</java.version>
  <jetty.version>9.4.48.v20220622</jetty.version>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <powermock.version>1.7.4</powermock.version>
  <mockito.version>1.10.19</mockito.version>
</properties>

这意味着,没有对 Java 17 的显式支持以及与 Java 17 相关的功能,可能不起作用。


0
投票

我使用最后一个 springboot 版本 3.3.x 和许多 Spark 版本,如 2.x 和 3.x 以及 JDK 17,错误总是相同的:

java.lang.IllegalAccessError: class org.apache.spark.storage.StorageUtils$ (in unnamed module @0x625732) cannot access class sun.nio.ch.DirectBuffer (in module java.base) because module java.base does not export sun.nio.ch to unnamed module @0x625732

我不明白为什么有些人说spark可以与JDK17一起工作,因为对我来说这是不可能的......

    <!-- Spark Core dependency -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.12</artifactId>
        <version>${SPARK_VERSION}</version>
    </dependency>

    <!-- Spark SQL dependency -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql_2.12</artifactId>
        <version>${SPARK_VERSION}</version>
    </dependency>
© www.soinside.com 2019 - 2024. All rights reserved.