OpenJDK sort une spécification pour le port d'applications Java sur iOS
JNI permet de combiner JVM et code en un seul exécutable

Le , par Cedric Chevalier, Expert éminent sénior
Les développeurs d’OpenJDK ont publié une nouvelle spécification de la JNI (Java Native Interface) baptisée JEP 178. L’une de leurs motivations majeures est de rendre possible l’exécution des applications Java dans des environnements supportant peu ou pas la machine virtuelle Java comme iOS.

La présence de Java sur iOS est récente, et due à Oracle. Grâce à son framework ADF, Oracle permet de contourner les limitations imposées par iOS.

La spécification proposée par les développeurs de la plateforme open source Java vise à combiner machine virtuelle et application Java en un seul exécutable. Ainsi, les développeurs pourront empaqueter le runtime Java et le code de l’application Java dans un seul binaire qui ne nécessite pas de bibliothèques externes.

Tobias Bley, l’un des participants au projet, affirme que « JEP 178 est une exigence majeure pour Java sur iOS car Apple ne permet pas le chargement dynamique des bibliothèques natives ».

Pour James Gosling, créateur du langage Java, la spécification JEP a un léger avantage. En effet, pour que celle d’Oracle respecte les clauses de contrat de service d’Apple, la fonctionnalité génératrice de code de son compilateur JIT ne doit pas être active. Sans prendre parti, il estime que « la spécification JEP 178 respecte mieux les clauses de contrat d’Apple en permettant la génération de code ».

Pour terminer, Gosling dit que JEP 178 constitue une bonne affaire pour les développeurs d’applications embarquées.

Source : OpenJDK

Et vous ?

Êtes-vous intéressé par le développement Java pour iOS ? Que pensez-vous de cette spécification ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Gugelhupf Gugelhupf - Modérateur https://www.developpez.com
le 08/03/2013 à 16:34
Une mini JVM embarquant le nécessaire par bytecode, on pourrait avoir de gros exécutables pour des petits programmes je pense.
Serait-t-il possible de compiler directement du Java en langage machine ? Je pense à cela parce qu'aujourd'hui, un langage comme le C++ possède un niveau d'abstraction suffisamment élevé et permet créer des applications safe.
Avatar de kowidi kowidi - Candidat au Club https://www.developpez.com
le 08/03/2013 à 23:30
Citation Envoyé par Gugelhupf  Voir le message
Une mini JVM embarquant le nécessaire par bytecode, on pourrait avoir de gros exécutables pour des petits programmes je pense.
Serait-t-il possible de compiler directement du Java en langage machine ? Je pense à cela parce qu'aujourd'hui, un langage comme le C++ possède un niveau d'abstraction suffisamment élevé et permet créer des applications safe.

Sous linux c'est possible de compiler en langage machine avec GCJ. Sous windows aussi je crois, mais je sais plus avec quoi. Sous ios je sais pas, mais ca serais bien en effet
Avatar de the_babou the_babou - Membre du Club https://www.developpez.com
le 09/03/2013 à 11:21
Le problème avec la compile en natif est la bibliothèque disponible (pas de swing, pas de javafx, pas . . .) qui est un des plus gros avantages de JAVA.

Par contre, Avian est une VM très interessante car elle permet de compiler en natif uniquement le corps des méthodes et de garder tout le reste comme une JVM normale. Elle supporte iOS et le jeu de classes de OpenJDK, avec l'arrivée annoncée du code de JavaFX pour iOS tout cela devient très intéressant ! ! !
Le seul bémol est la compilation d'Avian qui n'est pas facile
Offres d'emploi IT
IAM international trainee (H/F)
Atos - Ile de France - Les Clayes-sous-Bois (78340)
Intégrateur sécurité des SI (H/F)
Atos - Ile de France - Les Clayes-sous-Bois (78340)
Conception - développement - déploiement solutions cloud - big data (H/F)
Atos - Midi Pyrénées - Toulouse (31000)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil