javax.activation
パッケージはJavaで非推奨のようです。9。Oracle移行ガイドでは、JVMの起動時に--add-modules Java.activation
オプションを使用することを提案しています。
ただし、これは非推奨であり、将来のJavaバージョンで削除されるため、これを回避し、javax.activation
パッケージのクラスを置き換えたいと思います。 javax.activation
には何らかの代替手段があるはずです。利用可能なものがある場合、それは何ですか?
JavaBeans Activation Framework(JAF) は、おそらく既存のパッケージの代替案です。
JAFのこのスタンドアロンリリースは、Javaプラットフォームモジュールシステムを使用しますautomatic module name of
Java.activation
。JDK 9で使用されるモジュール名と一致します。将来のバージョンには、完全なモジュールメタデータが含まれます。
スタンドアロンAPIは、アップグレード可能なモジュールの概念により、モジュール形式でのみサポートされます。それらを使用すると、任意のフェーズ、つまり、コンパイル時、ビルド時、または実行時に、後のリリースからそのモジュールのバージョンを使用できます。
現在、 利用可能なバージョン これは1.2.0
で、次のように使用できます:
Maven
<dependency>
<groupId>com.Sun.activation</groupId>
<artifactId>javax.activation</artifactId>
<version>1.2.0</version>
</dependency>
Gradle
compile 'com.Sun.activation:javax.activation:1.2.0'
Ivy
<dependency org="com.Sun.activation" name="javax.activation" rev="1.2.0" />
JavaBeansアクティベーションフレームワークは、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
を実行できます。
上記のように、Javaバージョン> 8はjavax.activationを提供していません。ラクダプロジェクトに取り組んでいるときにこの例外に遭遇しました。次の依存関係を追加しました。
<!-- https://mvnrepository.com/artifact/javax.activation/activation -->
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>