web-dev-qa-db-fra.com

Quel est le remplacement du package javax.activation dans Java 9?

Le package javax.activation est obsolète dans Java. 9. Le guide de migration Oracle propose d'utiliser l'option --add-modules Java.activation lors du démarrage de la machine virtuelle.

Cependant, j'aimerais éviter cela et remplacer les classes du package javax.activation, car il est obsolète et sera supprimé dans les futures versions Java. Je suppose qu'il devrait exister une sorte d'alternative à javax.activation. De quoi s'agit-il?

46
Dmitriy Dumanskiy

JavaBeans Activation Framework (JAF) est peut-être l'alternative que vous recherchez pour le package existant.

Cette version autonome de JAF utilise un système de module de plate-forme Java (---) de Java.activation, pour correspondre au nom du module utilisé dans JDK 9. Une future version inclura des métadonnées de module complètes. .

Les API autonomes sont prises en charge sous forme modulaire uniquement, via le concept de modules pouvant être mis à nivea. En les utilisant, il est possible d’utiliser une version de ce module d’une version ultérieure dans n’importe quelle phase, c’est-à-dire au moment de la compilation, de la compilation ou de l’exécution.


La version actuelle version disponible pour cela est _1.2.0_ qui peut être utilisé comme ceci:

Maven

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

Gradule

_compile 'com.Sun.activation:javax.activation:1.2.0'
_

Ivy

_<dependency org="com.Sun.activation" name="javax.activation" rev="1.2.0" />
_
48
Naman

JavaBeans Activiation Framework est une technologie autonome avec son propre fichier de maintenance JSR dans le JCP et son propre téléchargement. Oui, Java SE 9 est obsolète et propose de supprimer, dans une version à venir, les modules partagés avec Java EE, mais cela n’a aucune incidence sur la version autonome. La version autonome continuera à vivre. Si vous utilisez Maven, cela devrait fonctionner:

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

et si vous développez un module, vous pouvez alors requires Java.activation.

20
Alan Bateman

Comme indiqué ci-dessus, Java versions> 8 ne fournissent pas javax.activation. J'ai rencontré cette exception lorsque je travaillais sur le projet Camel. Je viens d'ajouter la dépendance suivante:

<!-- https://mvnrepository.com/artifact/javax.activation/activation -->
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
1
Michal Cz