java 9中javax.activation包的替换是什么?

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

似乎在Java 9中不推荐使用javax.activation包.Oracle迁移指南建议在JVM启动期间使用--add-modules java.activation选项。

但是,我想避免这种情况并替换javax.activation包的类,因为它已被弃用,将在未来的java版本中删除。我想,javax.activation应该有某种替代方案。如果有可用的话,它是什么?

java jvm java-9 javax.activation
3个回答
45
投票

JavaBeans Activation Framework (JAF)可能是您正在寻找现有包装的替代品。

此独立版本的JAF使用Java平台模块系统自动模块名称java.activation,以匹配JDK 9中使用的模块名称。未来版本将包括完整模块元数据。

通过upgradeable modules的概念,仅以模块化形式支持独立API。使用它们,可以在任何阶段(即编译时,构建时或运行时)从更高版本使用该模块的版本。


目前available version1.2.0,可以像这样使用:

Maven的

<dependency>
    <groupId>com.sun.activation</groupId>
    <artifactId>javax.activation</artifactId>
    <version>1.2.0</version>
</dependency>

摇篮

compile 'com.sun.activation:javax.activation:1.2.0'

常春藤

<dependency org="com.sun.activation" name="javax.activation" rev="1.2.0" />

16
投票

JavaBeans Activiation Framework是一个独立的技术,在JCP中有自己的维护JSR并且自己下载。是的,Java SE 9已弃用它,并建议在将来的版本中删除与Java EE共享的模块,但这不会影响独立版本。独立版本将继续存在。如果你使用Maven那么这应该工作:

<dependency>
  <groupId>com.sun.activation</groupId>
  <artifactId>javax.activation</artifactId>
  <version>1.2.0</version>
</dependency>

如果你正在开发一个模块,那么你可以requires java.activation


0
投票

如上所述,java版本> 8不提供javax.activation。在处理camel项目时遇到了这个异常。我刚刚添加了以下依赖项:

<!-- https://mvnrepository.com/artifact/javax.activation/activation -->
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.