Java sur votre iPhone

Java & iPhoneiPhone est un mot qui fait buzzer en ce moment… De nombreux sites ont récemment couverts la sortie de l’iPhone 3G. Devant le succés de la première version du smartphone de la pomme, Sun a annoncé à JavaOne 2008, le portage de sa machine virtuelle Java. Apple y a mis un frein en verrouillant « juridiquement » son matériel. La licence d’Apple interdit d’installer certains type de softwares, dont Java (mais aussi Adobe Flash). Sun ne peut donc distribuer Java sur cette plateforme. Certaines rumeurs parlent d’un accord à moyen terme avec Microsoft afin d’installer la technologie Silverlight. Nous allons voir dans cet article comment faire tourner une application Java sur votre iPhone… en toute ILLÉGALITÉ.

Avant de pouvoir exécuter votre application Java, vous devez retirer le verrou numérique mise par Apple. Ce tutorial vous expliquera comment débloquer votre iPhone.

An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise.

Licence d’utilisation de l’iPhone & iPod Touch

Installons Jikes avec Cydia Installer

Nous allons mettre un place, un nouveau système d’installation pour votre iPhone: Cydia. A partir de Cydia, nous installerons Java.

Tout d’abord, ajoutez la source d’installation http://apptapp.saurik.com et installez Cydia Installer.
A partir de Cydia, choisissez d’installer, les packages suivant (dans l’ordre):

  • GNU Classpath : la bibliothèque de classe java
  • JamVM :la machine virtuelle pour l’iPhone
  • JocStrap : Java/Objective-C binder/bridge (Objective-C est le langage utilisé par Apple pour développer son iPhone)
  • UICaboodle : interface utilisateur, utilise pour les IHM
  • Java SQLite : base de données légére et driver JDBC
  • Jikes : compilateur Java, implémente Java 1.4.2 et partiellement Java 5.

Compiler Java

Il est possible de compiler directement sur son iPhone. Jikes remplace javac. Il respecte la nouvelle gestion des classes, mais pas celles propre aux évolution du langages.

Pour compiler, rien de plus simple:

jikes -bootclasspath /usr/share/classpath/glibj.zip FichierACompiler.java

Exécuter Java

Encore une fois, rien de plus simple. Au lieu d’éxécuter la commande java, utilisez la commande jamvm

jamvm FichierACompile


A défaut de vouloir installer une machine virtuelle, Alchemo propose de convertir votre application J2ME en application native pour iPhone.

Vous voilà dorénavant dans l’illégalité, car vous violez la licence d’utilisation d’Apple… Bienvenue dans la résistance 😉

Sources:

  • La politique d’Apple est vraiment ridicule. De mon côté je boycotte fermement tous leur produits pour cette raison.

    Acheter Appel c’est encourager ce type d’habitude.

  • Apple sera peut-etre obligé de faire marche arrière.
    La marque aimerait aussi que l’on considère son iPhone comme un téléphone professionnel (d’où l’ajout d’un SDK, de la compatibilité Exchange).

    Pas forcement pour Java, mais pour des technologies relatives aux applications Web, telles qu’Adobe Flex ou Google Gears. Les applications Web sont de plus en plus utilisées en entreprise et demandent, bien souvent,t des interfaces riches.

    Toutefois, il faut se rappeler que ce qui fait bien souvent planter Windows, ce sont des services/programmes tiers relativement mal conçus. De part leur mauvaise conception, elles rendent la machine globalement instable. En évitant de trop s’ouvrir, Apple permet à ses applications de rester en terrain connu, et donc de ne « trop » planter. C’est pas trés courageux… Dans ce cas, il vaudrait mieux un sceau qualité Apple sur des softwares tiers.

  • Nexus6

    Bonjour,

    Et bien non, c’est bien la licence d’utilisation d’Apple qui est illégale, vous pouvez modifier n’importe quel Os à votre guise, si vous en avez le besoin, l’interopérabilité entre 2 systèmes informatiques est un droit très français…

    /Nexus6

  • Developper en JAVA votre application Iphone et rester dans la LEGACY APPLE !

    Ce tour de force c est la société Flexycore(www.flexycore.com) qui l’a réussit en permettant de développer en JAVA 1.5 et sous Eclipse des applications NATIVES Iphones compatible avec l’App Store !
    Pour cela, iSpectrum compile les classes Java en Objective-C et utilise le SDK d’Apple pour produire le binaire des applications (cela nécessite pour rester dans la legacy Apple de détenir un Mac !)

    Ainsi il est possible de :
    • De porter facilement et rapidement un projet J2ME vers l’Iphone.
    • De développer sous JAVA (1.5 idem Android) des applications natives Iphone les performances du natif.
    • De mutualiser des développements pour Iphone et Android

    Des licences d’évaluations sont disponibles http://www.flexycore.com

    Enjoy 🙂

  • Thank for sharing !