JMRI: Java Version-Specific Features
Author: Bob Jacobsen
Keywords: JMRI technical code road map

# JMRI: Caractéristiques Java spécifique à la version

Cette page contient des informations sur la compatibilité et les fonctionnalités des différentes Versions de Java. Nous utilisons cette information pour décider de notre feuille de route pour les versions futures de JMRI.

## Capacités

Cette section répertorie les nouvelles fonctions de Java, et quelles Version de Java firent leurs premières apparitions. La colonne "JDK" indique le premier Java Development Kit qui pourrait rassembler les fonctionnalités, la colonne "JRE" indique l'environnement d'exécution d'abord que pourrait exécuter la fonctionnalité, y compris la JVM et les bibliothèque de soutien.

Entité | JDK | JRE
--- | --- | ---
Collections | 1.3 | 1.3
Java2D | 1.3 | 1.3
Mise à Jour Impression | 1.3 | 1.3
JUnit 3.8 | 1.3 | 1.3
JDOM 1.0 | 1.4 | 1.3
Java regexp | 1.4 | 1.4
Java3D | 1.4 | 1.4
Mise à Jour JavaHelp | 1.4 | 1.4
Drag and Drop | 1.4 (additionel amélioration en 1.6) | 1.4, 1.6
Logging API | 1.4 (additionel amélioration en 1.6) | 1.4, 1.6
XML catalog resolver | 1.3? | 1.4?
Annotations | 1.5 | 1.3
JavaMail | 1.5 | 1.3
JUnit 4.0 | 1.5 | 1.3
SwingWorker | 1.5 | 1.5 (*1.4)
JSpinner | 1.5 | 1.5
Enums | 1.5 | 1.5
printf, Formatter | 1.5 | 1.5
generics | 1.5 | 1.5
Desktop class | 1.6 | 1.6
Browser integration | 1.6 | 1.6
JDOM2 (generics) | 1.6 | 1.6
Toolbars | 1.6 | 1.6
JTable Sorting | 1.6 | 1.6
Webstart compatibility | 1.6 | 1.6
Generics for Swing classes | 1.7 | 1.7
NIO improves .zip file access | 1.7 | 1.7
I18N I/O improvements | 1.7 | 1.7
Memory use and GC improvements (better performance) | 1.7 | 1.7
Jetty Version 9 | 1.7 | 1.7
JUnit 4 and the `assert` keyword | 1.7 | 1.7

(* Indique qu'une librairie compatible est utilisée pour la première version)

## Disponibilité JRE

Cette section énumère les version disponible les plus récentes de Java Runtime pour différentes versions du système d'exploitation. S'il vous plaît noter que tous les utilisateurs de ce système d'exploitation n'auront pas fait les mise à jour vers cette version de Java; beaucoup utilisent une version plus ancienne.

OS et plateforme | Dernier JRE
--- | ---
Linux | (1.6?)
Win 8 (32-bit) | 1.8
Win 7 (32-bit) | 1.8
Win Vista (32-bit) | 1.8
Win Server 2008 (32-bit) | 1.8
Win Web Server 2008 (32-bit) | 1.6
Win 2000 (32-bit) | 1.6
Win Server 2003 (32-bit) | 1.6
Win 8 (64-bit) | 1.8
Win Server 2012 (64-bit) | 1.8
Win Server 2012 R2 (64-bit) | 1.8
Win 7 (64-bit) | 1.8
Win Server 2008 R2 (64-bit) | 1.8
Win Server 2008 (64-bit) | 1.7
Win Web Server 2008 R2 (64-bit) | 1.6
Win Vista (64-bit) | 1.8
Win 2003 (64-bit) | 1.6
Windows XP | 1.8 Unofficial Support
Windows 98 (2nd Ed) | 1.5-11
Windows 98 | 1.4.2_14
Windows 95 | 1.3.1_20
Mac OS X 10.8.3 and later on Intel | 1.8
Mac OS X 10.7.3 and later on Intel | 1.7
Mac OS X 10.5.8 and later on Intel | 1.6 (Apple JVM)
Mac OS X 10.5.7 and earlier on Intel | 1.5 (Apple JVM)
Mac OS X 10.3 and later on PowerPC | 1.5 (Apple JVM)
MacOS "Classic" | 1.1.8
OS/2 | 1.3

Voir la page de téléchargement Java.com pour tous les systèmes d'exploitation et
information sur les Versions Java les Configurations matérielles.

Les combinaison suivantes des versions JMRI- Java- Systèmes d'Exploitation étaientt basées sur des Développeurs sources Oracles et Systèmes d'Exploitation. C'est traduit des instruction d'installation des Systèmes d'Exploitation (suivre les hyperliens dans les en-têtes OS)

JMRI | Java | OS X | Windows | Linux | Ubuntu | Raspbian
--- | --- | --- | --- | --- | --- | ---
4.2 | 1.8 | 10.8.3+ Mountain Lion | Win7 SP1/8/10, Vista SP2, (XP) | 5.5+ | 12.04+ | 14.04LTS
3.10.1 | 1.7 | 10.7.3 Lion | Win7 SP1/8/10, Vista SP2, (XP) | 5.5+ | 12.04 | 12.04
3.10.1 | 1.6 | 10.6 Snow Leopard (JVM6) | Win2003, Win2000 (x86) | 5.5 | 10.4 | N/A
2.14.1 | 1.5 | 10.5.7 Leopard (JVM5) | Vista SP1, Win2000 SP3, Win8.x (x64) |  | 9.04 | N/A
2.8 | 1.5 | 10.4 Tiger | Win98 (2nd Ed), XP, ME |  |  | N/A
2.2 | 1.5 | 10.3 Panther | Win98, ME | N/A | N/A | N/A
| 1.3.1 | 10.3 Panther | Win95, Win98 | N/A | N/A | N/A
1.6 | 1.1.8 | MacOS9.1 (MRJ) | Win95, Win98 | N/A | N/A | N/A

## Évolution vers Java 1.8 depuis 1.6

Cette section aborde, à peu près en ordre décroissant d'importance, le processus de migration de Java 1.6 vers Java 1.8.

### Génériques, Swing et JComboBox

Java 1.8 introduit des génériques pour les objets Swing. Le plus commun est JComboBox.Cette ligne de Java 1.6:

        JComboBox box = new JComboBox();

décrit la création d'un JComboBox qui sélectionne les éléments ( Objets ) génériques. Dans Java 1.8, la JComboBox détient et sélectionne les objets d'un type spécifique, habituellement String. C'est écrit:

        JComboBox<String> box = new JComboBox<>();

parce que la JComboBox peut contenir actuellement des objets d'autres types. ( Comment cela peut se produire? Si la case est modifiable, et que quelqu'un entre un autre type ) Pour éviter le cas, un idiome plus robuste est:

        String result = box.getItemAt(progBox.getSelectedIndex());

### JavaDoc et doclint

Java 1.8 exécute par défaut le doclint doclet qui fait JavaDoc. Par défaut , il est très agressif sur les erreurs possibles. Les constructions basées sur Ant désactivent certains des termes de contrôle avec:

    -Xdoclint:all,-missing,-accessibility,-html,-syntax

pour laisser tomber les tests pour les balises JavaDoc manquantes et certaines erreurs HTML bénignes. ( Pour l'instant ).