Dans le cadre de la transition en cours vers un système de module, CORBA ainsi que d'autres modules Java EE ne seront désormais plus inclus dans le classpath par défaut de Java 9. Ces modules seront toujours inclus dans les distributions par défaut, mais les développeurs devront intégrer des arguments en ligne de commande spécifiques pour être en mesure de les utiliser. Le changement affectera uniquement les applications non-modulaires ciblant Java 9, les modulaires ayant déjà besoin d'indiquer explicitement tous les modules dont elles dépendent.
Comme expliqué dans The State of the Module System, l'ajout des capacités modulaires à Java 9 ne forcera pas les développeurs à les utiliser tout de suite, en revanche, un certain nombre d’options rétro compatibles sont rendues disponibles. L'une d'elles permettra la compilation de code traditionnel et non-modulaire en Java 9. Pour que cela fonctionne, le code non-modulaire sera ajouté par le compilateur à un module spécifique nommé "unnamed module", qui expose par défaut tous les packages qu’il contient et n'a pas de dépendances explicites.
Malheureusement, le fait que le module anonyme ne possède pas de dépendances explicites impose des défis de résolution de module. Dans une application Java modulaire, le module en cours de compilation aura une liste explicite des dépendances nécessaires. Le compilateur peut utiliser ces informations, ainsi que les dépendances des dépendances, pour calculer un graphe qui inclut la “transitive-closure” de tous les modules directement ou indirectement nécessaires au module compilé. Puisque le module anonyme ne précise aucunes dépendances, il ne peut pas être utilisé comme base pour calculer le graphe du module.
Pour résoudre ce problème, Java 9 devra utiliser une valeur par défaut comme module racine lors de la compilation du code dans le module anonyme. Avec la dernière modification, ce module racine par défaut a été changé de java.se.ee à java.se, ce qui signifie que toutes les extensions Java EE sont désormais indisponibles par défaut. Ce changement permettra d'éviter des affrontements avec les serveurs d'applications qui incluent leurs propres implémentations de packages Java EE.
Ceux qui souhaitent migrer vers Java 9, mais qui ne sont pas prêts à réécrire leurs applications selon le système de module peuvent encore enchaîner ces dépendances à la classpath en utilisant l’argument en ligne de commande "-addmods <module.name>" lors de la compilation ou de l'exécution de l'application.