2017-09-29 3 views
8

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 Java.Quel est le remplacement du paquet javax.activation dans java 9?

Cependant, je voudrais éviter cela et remplacer les classes du paquet javax.activation, car il est obsolète et sera supprimé dans les futures versions de Java. Je suppose, il devrait y avoir une sorte d'alternative pour javax.activation. S'il y en a, qu'est-ce que c'est?

Répondre

8

JavaBeans Activation Framework (JAF) est probablement l'alternative que vous recherchez à l'emballage existant.

Cette version autonome de JAF utilise Java System Platform Module Module automatique nom de java.activation, pour correspondre au nom du module utilisé dans JDK 9. Une future version comprendra les métadonnées complète du module.

Les API autonomes sont pris en charge uniquement sous forme modulaire, via le concept de upgradeable modules. En les utilisant, il est possible d'utiliser une version de ce module à partir 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.


Le moment est available version pour ce 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> 

Gradle

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

Ivy

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

Le JavaBeans cadre activiation est une technologie autonome avec son propre entretien JSR dans le JCP et son téléchargement. Oui, Java SE 9 l'a déprécié et propose de supprimer dans une version ultérieure avec les modules partagés avec Java EE mais cela n'a pas d'impact sur la version autonome. La version autonome va continuer à vivre. Si vous utilisez Maven alors 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.

+0

Donc, avec 'dépendance JavaEE-api' avec scope = à condition que je dois ajouter celui-ci? –

2

Au cas où quelqu'un d'autre vient à travers cela et comme moi est induit en erreur l'option de ligne de commande réelle n'est pas --add-module mais --add-modules

+0

Bonne prise, je l'ai juste corrigé dans la question. – Nicolai