Ceci est une ancienne révision du document !



Java

Logo Java

Java est une technologie, qui intègre une bibliothèque complète pour exécuter ou développer une multitude d'application. La particularité principale de Java est que les logiciels écrits dans ce langage sont très facilement portables sur plusieurs systèmes d’exploitation tels que UNIX, Windows, Mac OS ou GNU/Linux, avec peu ou pas de modifications. C’est la plate-forme qui garantit la portabilité des applications développées en Java. Défini à l'origine comme un langage, « Java » a évolué au cours du temps pour devenir un ensemble cohérent d'éléments techniques et non techniques.

Ainsi, la technologie Java regroupe aujourd'hui :

Le tout forme un ensemble cohérent quoique modulaire, et selon vos besoins, vous installerez certains composants et pas d'autres : il « suffit » de connaître les éléments dont vous avez besoin. Dans la pratique, si vous savez que vous avez besoin de Java, mais que vous ne savez pas quoi installer par rapport à ce qui est décrit dans cette liste, alors la section choix du paquet à installer devrait vous aider à faire le bon choix.

Versions

Java évolue au fil des années. La version actuelle est Java SE 7.

En plus de faire évoluer les numéros de versions, le nom complet de chaque version a parfois été changé, ce qui rend la compréhension un peu compliquée.

Historique

Voici les différentes versions ainsi que leur date de sortie :

  • JDK 1.0 (23 janvier 1996)
  • JDK 1.1 (19 janvier 1997)
  • J2SE 1.2 (9 décembre 1998)
  • J2SE 1.3 (8 mai 2000)
  • J2SE 1.4 (6 février 2002)
  • J2SE 5.0 (30 septembre 2004)
  • Java SE 6 (11 décembre 2006)
  • Java SE 7 (28 juillet 2011)
  • Java SE 8 (en développement)

En outre, Java 2 désigne les versions de J2SE 1.2 à J2SE 1.4 (il y a vraiment de quoi se perdre).

Compatibilité

Java assure une compatibilité binaire ascendante (les programmes compilés avec une ancienne version peuvent s'exécuter avec une plate-forme plus récente).

Mise à part l'introduction de nouveaux mots-clés (assert dans 1.4 et enum dans 5.0), la compatibilité binaire ascendante est presque respectée (les sources d'un programme écrit pour être compilées avec une ancienne version peuvent être compilées avec une nouvelle version du compilateur).

Implémentations

Il existe "plusieurs" implémentations de Java, parmi lesquelles :

Les deux versions susceptibles d'être utilisées aujourd'hui sont Java Sun et OpenJDK.

À part pour d'anciennes versions ou des problèmes de compatibilité spécifiques, il est maintenant vivement recommandé d'utiliser OpenJDK, totalement libre, et offrant de meilleures performances que Java Sun. A noter cependant, certains bugs demeurent dans OpenJDK

Version officielle sous Ubuntu 12.04 Precise Pangolin

En premier lieu, désinstaller toutes les versions de Java, OpenJDK et icedtea ;

  1. installer les paquets hors dépôt en même temps avec dpkg de Debian Squeeze :
  2. Autre solution via PPA ( pour Ubuntu 13.04, 12.10, 12.04, 11.10)
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

source : http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html

Le dépôt est paramétré avec la version maya qui n'existe pas chez Ubuntu (c'est la version de Mint développée à partir de Precise). Il faudra donc dans le fichier /etc/apt/sources.list.d/webupd8team-java-maya.list remplacer les 2 occurences maya par precise :
deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main
deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main

Recharger ensuite les paquets par

sudo apt-get update
Attention, c'est une version en développement donc susceptible de comporter des bugs. Le paquet 'oracle-java8-installer' est maintenant disponible aussi depuis ce ppa. http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html

Installation Java JRE et plugin Java Plugin sous Ubuntu 10.10 Maverick Meerkat

Désinstaller toutes les versions de Java ou OpenJDK [TRÈS FORTEMENT CONSEILLÉ].

(Pour supprimer Sun Java6 ouvrez Système > Administration > Gestion des paquets Synaptic et supprimez les paquets sun-java6-jre , sun-java6-bin ainsi que sun-java6-plugin puis rechargez les paquets !)

1. Ouvrir un terminal et saisir:

gksu /usr/bin/software-properties-gtk

2. Relancer la même commande:

gksu /usr/bin/software-properties-gtk

Sélectionner l'onglet autres et le premier lien de sources de paquets qui s'affiche est:

http://archive.canonical.com/ubuntu maverick partner

Activer toutes les lignes de cette source de paquets. Cliquer sur fermer et sur recharger.

3. Saisir la commande:

sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts

Et c'est tout! Surtout ne pas installer IcedTea plugin ou OpenJDK Java 6 Runtime ou OpenJDK Java 6 Webstart, cela ne fonctionnera pas.

4. Vous pouvez tester si Java fonctionne correctement ici: http://www.java.com/fr/download/installed.jsp?detect=jre&try=1

Un peu de patience il faut que l'applet se télécharge (une fois fait, elle est stockée dans le cache de Java).

Il est possible d'avoir plusieurs versions installées simultanément sur votre système. Dans ce cas, on peut choisir celle à utiliser : Changer la version de Java utilisée par défaut.

[pour information, karmic - 9.10 -, met à jour java, la version 'obsolète' n'est donc pas gelé]

Utilisation de sun-java sans désinstaller openjdk.

1. Ouvrir un terminal et taper :

sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts

2 ensuite tapez la ligne suivante pour utilser la version de sun:

sudo update-java-alternatives -s java-6-sun

Jusqu'a Ubuntu 11.10

Depuis Karmic, les paquets de java 5 sont obsolètes dans les dépôts vous devrez donc installer cette version manuellement. - erreur, java 6 est bien présente -
Sous Lucid (Ubuntu 10.04), les paquets de sun-java 6 sont disponibles dans le dépôt partenaire qu'il faut activer pour pouvoir l'installer. Remarque : vous pouvez aussi utiliser l'alternative icedtea6 (paquet icedtea-6-jre-cacao et son plugin pour les navigateurs web) Tous les paquets sun-java 6 ont été retiré du dépôt partner depuis que Oracle a interdit sa publication sur Linux. Il faut donc utiliser la version libre de Java voir OpenJDK.
Sous Oneiric Ocelot (11.10) la version acceptable pour le développement serait openjdk-7-jdk, vous pouvez aussi passer par le site officiel Java Platform, Enterprise Edition 6 SDK Update 3 (with JDK 7u1), pour télécharger la dernière version.
OpenJDK 6 Java 6 Sun Java 5 Sun Description
openjdk-6-jre sun-java6-jre sun-java5-jre plate-forme d'exécution (pour exécuter des applications Java)
icedtea6-plugin sun-java6-plugin sun-java5-plugin plug-in pour exécuter des applets Java dans le navigateur internet
openjdk-6-jdk sun-java6-jdk sun-java5-jdk plate-forme de développement (pour compiler des applications Java, réservée aux développeurs)
openjdk-6-doc sun-java6-doc sun-java5-doc javadoc (documentation Java), indispensable aux développeurs, installée dans /usr/share/doc/…
openjdk-6-source sun-java6-source sun-java5-source sources des bibliothèques Java SE
openjdk-6-demo sun-java6-demo sun-java5-demo quelques exemples et démonstrations
sun-java6-fonts sun-java5-fonts polices de caractères non libres
sun-java6-javadb javadb
openjdk-6-jre-headless JRE allégé (voir ici)
openjdk-6-dbg debugging symbols
Pour installer sun-java6-doc, voir ce lien : Lien externe

A partir d'Ubuntu 12.04

Manière simple, entièrement libre : environnement d'exécution + plugin firefox

Installation des paquets : openjdk-7-jre et icedtea-7-plugin. Redémarrez firefox et voilà, ça marche.

Vérification sur : http://www.java.com/fr/download/testjava.jsp

via la version de sun

À partir d'Ubuntu 12.04 le Java de Sun n'est plus disponible dans les dépôts officiels, même partenaire. Il est toutefois possible d'installer Sun Java 6 et 7 via des dépôts ppa, pour ce faire suivez la procédure suivante (il va de soit que vous ne devez installer qu'une seule de ces deux versions) :

Sun Java 6

Il semble manquer des paquets de dépendances et il n'y a qu'une version 32bits de disponible pour java 6
  sudo apt-add-repository ppa:flexiondotorg/java
  sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 2EA8F35793D8809A
  sudo apt-get update
  sudo apt-get install sun-java6-jre sun-java6-plugin

Source

Le dépôt flexiondotorg semble avoir retiré les paquets java.
Il a mis en place une autre méthode, voir : https://github.com/flexiondotorg/oab-java6
Sur 12.04 64bits, Géogébra fonctionne mieux avec la version 7

Sun java 7 (fonctionne en 64 bits)

  sudo add-apt-repository ppa:webupd8team/java
  sudo apt-get update
  sudo apt-get install oracle-java7-installer
  

Après avoir installé la version 7 d'Oracle, il faut créer un lien symbolique pour assurer la compatibilité avec certains logiciels

  cd /usr/lib/jvm
  sudo ln -s java-7-oracle default-java
  cd

Manuelle (du JRE et du plugin de Sun)

  1. On télécharge le dernier Java Sun 1.6 [c'est la version "Linux (fichier auto-extractible)" qui se trouve ici - actuellement, la version 1.6.0_37] :
    wget http://javadl.sun.com/webapps/download/AutoDL?BundleId=69505 -O jre-6u37-linux-i586.bin
  2. On place le fichier là où on veut l'installer :
    sudo mv ./jre-6u37-linux-i586.bin /opt/
  3. On se positionne dans le répertoire /opt/ :
    cd /opt/
  4. On rend le fichier exécutable :
    sudo chmod +x jre-6u37-linux-i586.bin
  5. On exécute le fichier d'installation :
    sudo ./jre-6u37-linux-i586.bin
  6. On crée un lien symbolique pour que Firefox prenne en compte le plugin Java Sun :
    sudo ln -fs /opt/jre1.6.0_37/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/mozilla/plugins/libjavaplugin_oji.so
  7. On crée un lien symbolique pour que Chromium prenne en compte le plugin Java Sun :
    sudo ln -fs /opt/jre1.6.0_37/lib/i386/libnpjp2.so /usr/lib/chromium-browser/plugins/libnpjp2.so
  8. On crée le dossier des plugins puis un lien symbolique pour que Google-Chrome prenne en compte le plugin Java Sun :
    sudo mkdir -p /opt/google/chrome/plugins && sudo ln -fs /opt/jre1.6.0_37/lib/i386/libnpjp2.so /opt/google/chrome/plugins/libnpjp2.so
  9. On propose à Ubuntu d'utiliser Java Sun 1.6.0_37 :
    sudo update-alternatives --install /usr/bin/java java /opt/jre1.6.0_37/bin/java 1
    sudo update-alternatives --config java
  10. On supprime le fichier d'installation :
    sudo rm -fr jre-6u37-linux-i586.bin
Sur les versions d'Ubuntu en 64bits, il faut créer un lien symbolique de la librairie a la place du plugin inexistant:
sudo ln -s /opt/jre1.6.0_37/lib/amd64/libnpjp2.so /usr/lib/mozilla/plugins/
sudo mkdir -p /opt/google/chrome/plugins && sudo ln -fs /opt/jre1.6.0_37/lib/amd64/libnpjp2.so /opt/google/chrome/plugins/libnpjp2.so
En installant Java Sun de cette façon, il n'y aura pas de mises à jour automatiques.
  • Soit, un jour, il faudra effacer ce Java et remettre celui des dépôts :
sudo rm -fr /opt/jre1.6.0_37
sudo rm -fr /usr/lib/mozilla/plugins/libjavaplugin_oji.so
sudo apt-get install sun-java6-fonts sun-java6-bin sun-java6-jre sun-java6-plugin
sudo update-java-alternatives -s java-6-sun
  • Soit, il faudra effacer ce Java, télécharger le nouveau et refaire la même procédure citée plus haut (en changeant le numéro de version - d'autres choses peuvent changer, comme le lien de téléchargement ; il faudra donc adapter les commandes) :
sudo rm -fr /opt/jre1.6.0_37

+ les commandes citées plus haut

Malgré la compatibilité ascendante de Java, certains préfèrent, en entreprise notamment, utiliser une ancienne version pour développer car c'est sur cette version que le programme est destiné à être exécuté.

Pour cela, il est possible de télécharger les anciennes versions de Java.

Il est bien sûr possible de faire de même avec les versions actuelles, même si dans ce cas, l'utilisation des dépôts est préférable.

Voici un script PHP php5-cli (nécessite la librairie php5-curl et parfois de g++-multilib ("./install.sfx.6388: No such file or directory") ) qui fait exactement la même chose que les commandes ci dessus. Le script télécharge automatiquement la dernière version ( 32Bit only ) de Java Sun puis l'installe. ( Installation des plugins pour Firefox et Chromium inclus ! ) Copier et coller le code suivant dans un fichier vous appellerez java_update.sh.

java_update.sh
#!/usr/bin/php
<?php
/*******************************************************************************
* Script By Immortal-PC : immortal-pc.info
* Create: 2012/01/22
* Update: 2012/03/27    Firefox bug correction
*/
 
// Permet de connaitre l'état d'avancement
function curl_progress_callback( $download_size, $downloaded, $upload_size, $uploaded )
{
	static $last = -1;
 
	if( $download_size !== 0 && round(($downloaded*100)/$download_size, 1) !== $last ){
		$last = round(($downloaded*100)/$download_size, 1);
		echo $last,"%\r\n";
	}
}
 
// Reprise d'une ancienne installation ?
$retry = false;
if( is_file('/usr/lib/jvm/java.bin') ){
	echo 'Reprendre l\'installation ? (O|N)',"\r\n:\\> ";
	$retry = trim(fgets(STDIN), "\r\n "); // lit une ligne depuis STDIN
	$retry = $retry === 'y' || $retry === 'Y' || $retry === 'o' || $retry === 'O';
}
 
$dir = null;
if( !$retry ){
	/***************************************************************************
	* Recherche d'une nouvelle version
	*/
	echo 'Search new Version',"\r\n";
	$ch = curl_init('http://java.com/fr/download/manual.jsp');
	curl_setopt($ch, CURLOPT_COOKIEJAR, realpath('cookie.txt'));
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	$ret = curl_exec($ch);
	if( $ret === false )
		exit(curl_error());
	curl_close($ch);
 
	$match = null;
 
	// Détection de la version
	preg_match_all('`<strong>Recommandé ([^<]+)</strong>`i', $ret, $match);
	if( is_array($match) )
		echo $match[1][0],"\r\n";
	unset($match);
 
	// Récupération du lien
	preg_match_all('`href="([^"]+)"[^:]*\:setCookie\(\'jreDcookie\', \'([^\']+)[^>]*>[\n \r \r\n \t]*Linux \(fichier auto-extractible\)`i', $ret, $match);
	unset($ret);
 
	if( !is_array($match) )
		exit('Impossible de match les données !');
 
 
	/*******************************************************************************
	* Téléchargement
	*/
	echo 'Download: ',$match[1][0],"\r\n";
	$ch = curl_init($match[1][0]);
	curl_setopt($ch, CURLOPT_COOKIEJAR, realpath('cookie.txt'));
	curl_setopt($ch, CURLOPT_COOKIEFILE, realpath('cookie.txt'));
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
	curl_setopt($ch, CURLOPT_COOKIE, 'jreDcookie='.$match[2][0]);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
	curl_setopt($ch, CURLOPT_NOPROGRESS, false);
	curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'curl_progress_callback');
	$ret = curl_exec($ch);
	if( $ret === false )
		exit(curl_error());
	curl_close($ch);
 
	/*******************************************************************************
	* Enregistrement
	*/
	if( !is_dir('/usr/lib/jvm/') && !mkdir('/usr/lib/jvm/') )
		exit('Erreur lors de la création du dossier /usr/lib/jvm/'."\r\n");
 
	$fp = fopen('/usr/lib/jvm/java.bin', 'wb+');
	fputs($fp, $ret);
	fclose($fp);
 
	unset($match);
 
	// Récupération du nom du dossier de destination
	preg_match_all('`javahome=(.+)`i', $ret, $match);
	$dir = $match[1][0];
	unset($ret, $match);
 
	// Attante de 2 secs
	sleep(2);
 
	// chmod
	if( !chmod('/usr/lib/jvm/java.bin', 0777) )
		exit('Fichier introuvable !'."\r\n");
}else{
	/***************************************************************************
	* Reprise de l'installation
	*/
	if( !chmod('/usr/lib/jvm/java.bin', 0777) )
		exit('Impossible d\'attribuer un chmod 777 à java.bin !');
 
	$fp = fopen('/usr/lib/jvm/java.bin', 'r');
	$match = null;
	while( !feof($fp) )
		if( preg_match_all('`javahome=(.+)[\r\n]?`i', fgets($fp), $match) ){
			$dir = $match[1][0];
			break;
		}
	fclose($fp);
	unset($fp, $match);
}
 
if( !$dir )
	exit('Dossier temporaire introuvable');
echo 'Dossier temporaire: ',$dir,"\r\n";
 
 
/*******************************************************************************
* Installation
*/
// On change de dossier
chdir('/usr/lib/jvm/');
 
// Supression des vieux dossiers temporaires
echo 'Suppression des vieux dossiers temporaires',"\r\n";
shell_exec('rm -rf /usr/lib/jvm/'.$dir);
 
// Lancement de l'installation
echo '',"\r\n";
echo shell_exec('./java.bin');
 
// On set les permissions du dossier
shell_exec('chmod 755 '.$dir.'/ '.$dir.'/*');
 
// Fin d'installation
echo 'Installation sans problème ? ( o|n )',"\r\n",':\\> ';
$isOk = trim(fgets(STDIN), "\r\n "); // lit une ligne depuis STDIN
if( $isOk === 'y' || $isOk === 'Y' || $isOk === 'o' || $isOk === 'O' ){
	// TOUT EST OK
	shell_exec('rm -rf java-6-sun/ java.bin');
	shell_exec('mv '.$dir.' java-6-sun');
}else{
	echo 'Abandon !',"\r\n";
	shell_exec('rm -rf '.$dir.'/ java.bin');
	exit();
}
echo 'Création des liens',"\r\n";
echo shell_exec('ln -fs /usr/lib/jvm/java-6-sun/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/mozilla/plugins/libjavaplugin_oji.so');
echo shell_exec('ln -fs /usr/lib/jvm/java-6-sun/lib/i386/libnpjp2.so /usr/lib/mozilla/plugins/libnpjp2.so');
if( is_dir('/usr/lib/chromium-browser/') )
	echo shell_exec('ln -fs /usr/lib/jvm/java-6-sun/lib/i386/libnpjp2.so /usr/lib/chromium-browser/plugins/libnpjp2.so');
echo 'Installation dans le système',"\r\n";
echo shell_exec('update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-6-sun/bin/java 1');
echo 'Utilisation dans le système',"\r\n";
 
/*******************************************************************************
* Installation dans le système
*/
$descriptorspec = array(
   0 => array('pipe', 'r'),// stdin est un pipe où le processus va lire
   1 => array('pipe', 'w'),// stdout est un pipe où le processus va écrire
   2 => array('pipe', 'r')// stderr est un fichier
);
 
$cwd = '/usr/bin/';
$env = array();
 
$process = proc_open('/usr/bin/update-alternatives --config java', $descriptorspec, $pipes, $cwd, $env);
 
if( is_resource($process) ){
    // $pipes ressemble à :
    // 0 => fichier accessible en écriture, connecté à l'entrée standard du processus fils
    // 1 => fichier accessible en lecture, connecté à la sortie standard du processus fils
    // Toute erreur sera ajoutée au fichier /tmp/error-output.txt
 
	stream_set_blocking($pipes[1], 0);
    while( !feof($pipes[1]) && ($read = fread($pipes[1], 10)) !== false && !preg_match('`(\[\*\])|(\*\])|(\[\*)`i', $read) )
		echo $read;
    fclose($pipes[1]);// Ne pas arriver en fin de stream, sinon blocage
 
	echo "\r\n:\\> ";
    fwrite($pipes[0], fgets(STDIN));
    fclose($pipes[0]);
 
    // Il est important que vous fermiez les pipes avant d'appeler
    // proc_close afin d'éviter un verrouillage.
    $return_value = proc_close($process);
 
	if( $return_value )
		echo 'Program return: ',$return_value,"\r\n";
}else{
	echo 'No resource !',"\r\n";
}
 
// Execution du panneau de control
echo 'Execution du panneau de controle.',"\r\n";
shell_exec('/usr/lib/jvm/java-6-sun/bin/ControlPanel');
?>

Pour l'exécuter:

sudo chmod +x ./java_update.sh && sudo ./java_update.sh 

Durant l'exécution du script, il y a 2 étapes:

  1. Après l'installation de Java Sun, le script va vous demander si dans le texte affiché plus haut il y a eu une erreur ou non.
    Installation sans problème ? ( o|n )

    Normalement vous repondez o

  2. A la fin de l'installation vous aurez une boite dans ce style
      Selection    Path                              Priority   Status
    ------------------------------------------------------------
      0            /usr/lib/jvm/java-6-sun/bin/java   1         auto mode
    * 1            /usr/lib/jvm/java-6-sun/bin/java   1         manual mode

    Selectionnez la ligne correspondant à /usr/lib/jvm/java-6-sun/bin/java

Installation manuelle de Java SE 7u4 (JDK + JRE) et du plugin

Java 1.7 est encore récente toutes les applications ne sont pas encore pleinement compatible avec elle.

Pour pouvoir développer en Java, il est indispensable d'avoir des outils supplémentaires disponibles dans le JDK (Java Developpement Kit) en plus de la machine virtuelle Java disponible dans le JRE.

Après avoir accepté la licence1), téléchargez dans votre Dossier Personnel JDK Java 7 depuis le site d'Oracle.
Selon votre architecture matérielle il s'agira au choix des archives:

  • jdk-7u4-linux-i586.tar.gz
  • jdk-7u4-linux-x64.tar.gz

La suite se passera ensuite dans un terminal où il faudra

  1. Se déplacer dans le dossier /usr/lib/jvmoù sera installé Java
  2. Mettre en place la machine virtuelle Java (JVM) fraichement décompressée.
  3. Faire de même pour le compilateur javac, Java Webstart et le plugin dédié à Firefox
  4. Sélectionner la JVM du système en choisissant le numéro correspondant à l'entrée /usr/lib/jvm/jdk1.7.0_04/bin/java
  5. Faire de même pour javac, javaws et le plugin du navigateur en choisissant selon votre architecture:
    • /usr/lib/jvm/jdk1.7.0_04/jre/lib/i586/libjavaplugin_jni.so
    • /usr/lib/jvm/jjdk1.7.0_04/jre/lib/amd64/libjavaplugin_jni.so

Mise en place du JDK

cd /usr/lib/jvm
sudo tar xvzf ~/jre-7u4-linux-*.tar.gz
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_04/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_04/bin/javac 1
sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.7.0_04/bin/javaws 1
sudo update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/jdk1.7.0_04/jre/lib/i586/libjavaplugin_jni.so 1 
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
sudo update-alternatives --config mozilla-javaplugin.so
Si vous êtes sur une version 64bits, pensez à adapter l'étape 4 de mise en place du plugin Firefox en remplaçant la 6ème commande par
sudo update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/jdk1.7.0_04/jre/lib/amd64/libjavaplugin_jni.so 1

Installation manuelle de Java SE 6u32 (JDK + JRE) et du plugin

La version 6 correctif 32 est sortie en mai 2012. La version se trouve à cette page: http://www.oracle.com/technetwork/java/javase/downloads/jre-6u32-downloads-1594646.html

FIXME À compléter FIXME

Police de caractère des menus trop petite (microscopique) sur grand écran

Solution testé sous Kubuntu 12.04 64 bits avec écran 42" d'une résolution de 1920x1080 utilisant « OpenJDK » (2013-07-28).

Exemple du problème avant :

Exemple du problème après l'application de la solution :

Pour corriger un problème de police de caractère trop petit dans l'écran d'accueil (écran du Login) et dans les applications écrite en langage Java, il faut modifier le fichier « /etc/X11/xorg.conf » pour qu'il reflète les mêmes valeurs que ce qui est configuré dans le panneau de configuration « Configuration → Apparence des applications → Polices → Forcer le PPP des polices : XX ».

Chez moi cela donne :

« Configuration → Apparence des applications → Polices → Forcer le PPP des polices : 96 ».

Ce "96" est à retenir pour la suite de la solution.

Donc, dans le fichier « /etc/X11/xorg.conf », dans « Section "Device" », ajouter à la fin les deux lignes suivantes en les adaptent à votre configuration :

  Option "UseEdidDpi" "False"
  Option "DPI" "XX x XX"

Chez moi, je passe de :

Section "Device"
  Identifier "Device0"
  Driver     "nvidia"
  VendorName "NVIDIA Corporation"
  BoardName  "GeForce GTX 560 Ti"
EndSection

Avec mon "96", je passe à :

Section "Device"
  Identifier "Device0"
  Driver     "nvidia"
  VendorName "NVIDIA Corporation"
  BoardName  "GeForce GTX 560 Ti"
  Option     "UseEdidDpi" "False"
  Option     "DPI" "96 x 96"
EndSection

Un redémarrage de l'ordinateur et le tour est joué !

Tout le mérite de cette solution revient au bon génie Frédéric Côté, qui à laborieusement et méthodiquement suivi la piste du problème pour finalement le résoudre.

Je profite de l'occasion pour le remercier d'autant d'effort pour aider son prochain !

Je souhaite exécuter un programme Java

Pour exécuter un programme Java, tels qu'azureus ou eclipse, installez le paquet openjdk-6-jre.

Je souhaite exécuter une applet Java dans un navigateur

Pour exécuter une applet Java, telle que celle utilisée pour déclarer ses impôts en ligne, ou encore de nombreux petits jeux en ligne, installez le paquet de plug-in correspondant à votre version de java (voir tableau ci-dessus).

Un site tel que impots.gouv.fr ne fonctionne pas avec icedtea6-plugin, demandent sun-java6-plugin.
Testez votre navigateur : https://cfspart.impots.gouv.fr/tdir-01/reco.html

Le site de banque en ligne de labanquepostale.fr ne fonctionne correctement qu'avec le sun-java6-plugin

Remarque: ceci ne semble plus vrai avec les dernières versions d'openjdk…
Pour voter via internet aux elections (francais de l etranger) , le plug-in icetea n est pas accepte il faut installer le jre d Oracle puis taper dans une console
sudo update-alternatives --config mozilla-javaplugin.so

et choisir le fichier d oracle (dans mon cas /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so)

Lors du premier chargement d'une applet, il vous est demandé de choisir un répertoire temporaire. Laissez le choix par défaut (/tmp) et cliquez sur OK.
Si vous avez installé la version 64 bits d'Ubuntu et que
  • soit aucune installation de paquet ne vous est proposée2),
  • soit vous rencontrez des problèmes avec le plugin installé3),

alors vous pouvez suivre ce tutoriel pour installer la version béta 64 bits du plugin sun java6.

Je souhaite développer et compiler des programmes Java

Pour pouvoir compiler des fichiers .java en .class, il faut installer le JDK : openjdk-6-jdk.

Si vous utilisez eclipse, le JDK n'est pas indispensable, car eclipse intègre son propre compilateur. Il est cependant pratique d'installer le JDK, pour compiler en ligne de commande ou grâce à ant.

Installer la plate-forme de développeur pour JAVA 7 (méthode semi-manuelle)

Malheureusement la version n'est pas encore disponible sur les dépôts. Pour pouvoir l'essayer de suite, il existe une méthode très simple, et sécuritaire proposée par Oracle. Il suffit de télécharger un script d'installation disponible à cette adresse : java-ee-sdk-6u3-jdk-7u1. Il se chargera de toute l'installation à votre place. Il s'agit d'une version "multi-langages" pour vous simplifier la tache.

Si votre version d'Ubuntu est en 32 bits, prenez cette version :

wget http://download.oracle.com/otn-pub/java/java_ee_sdk/6u3-wjdk-7u1/java_ee_sdk-6u3-jdk7-linux-ml.sh

Si elle est en 64bits préférez celle-ci :

wget http://download.oracle.com/otn-pub/java/java_ee_sdk/6u3-wjdk-7u1/java_ee_sdk-6u3-jdk7-linux-x64-ml.sh

Une fois le fichier sur votre ordinateur, il ne vous reste plus qu'à le rendre exécutable.

chmod +x java_ee_sdk-6u3-jdk7-linux-*-ml.sh

Enfin exécutez le script, qui se chargera de toute la procédure d’installation.

./java_ee_sdk-6u3-jdk7-linux-*-ml.sh
Il ne vous reste plus qu'à ouvrir l’ide Java de votre choix (exemple : eclipse).

Connaître la version de Java utilisée par défaut

Pour connaître la version de la plate-forme d'exécution Java, saisissez dans un terminal:

java -version

Pour connaître la version du compilateur (si vous avez installé un JDK) :

javac -version

Ajouter la variable JAVA_HOME à votre système

  • Si vous utilisez le jdk de SUN Saisissez dans un terminal:
    sudo bash -c "echo JAVA_HOME=/usr/lib/jvm/java-6-sun/ >> /etc/environment"
  • Si vous utilisez l'openjdk Saisissez dans un terminal:

32 bits :

sudo bash -c "echo JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk/ >> /etc/environment"

64 bits :

sudo bash -c "echo JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64/ >> /etc/environment"

Vérifiez qu'il n'y a pas de doublons, en éditant le fichier /etc/environment

Changer la version de Java utilisée par défaut

De manière interactive

Saisissez dans un terminal:

sudo update-alternatives --config java

Ceci va lister la liste des versions disponibles, et vous n'aurez plus qu'à choisir le numéro de celle que vous souhaitez utiliser par défaut.

Pour Java Web Start Exécutez :
sudo update-alternatives --config javaws

De manière non-interactive

Vous pouvez sélectionner la version de Java désirée (ici OpenJDK) en tapant :

sudo update-java-alternatives -s java-6-openjdk

Pour obtenir la liste des versions disponibles, tapez :

update-java-alternatives -l

Firefox ne trouve pas le plugin Java

Vous avez installé un plugin Java (par exemple sun-java6-plugin) par l'intermédiaire de Synaptic, mais Firefox ne le trouve pas : si l'on ouvre la page about:plugins, Java n'apparaît pas).

Saisissez dans un terminal:

sudo update-alternatives --config firefox-javaplugin.so
sudo update-alternatives --config mozilla-javaplugin.so

Sélectionnez chaque fois le plugin désiré (s'il y en a plusieurs) puis redémarrez Firefox.

Si ces commandes renvoient une erreur, vous pouvez essayer ça dans le terminal:

sudo update-alternatives --install /usr/lib/mozilla/plugins/mozilla-javaplugin.so mozilla-javaplugin.so /usr/lib/jvm/java-6-sun/jre/lib/i386/libnpjp2.so 1

en remplaçant "java-6-sun" par votre java installé et en remplaçant "i386" par "amd64" si vous utilisez un système 64 bits

Exécuter un fichier JAR

Certains logiciels Java sont distribués sous forme de .jar exécutable.

Un .jar n'est rien d'autre qu'une archive (comme un .zip) contenant l'ensemble des fichiers nécessaires à l'exécution du programme.

Pour les exécuter, utilisez la commande :

java -jar fichier.jar
Les fichiers .jar ne sont pas tous exécutables. Ils le sont si et seulement si dans le fichier META-INF/MANIFEST.MF une ligne contient :
Main-Class: lenomdupackage.LeNomDeLaClassePrincipale

(en adaptant le nom de la classe principale).

Permettre l'exécution d'un fichier JAR par un double-clic

Il suffit d'associer les fichiers .jar à la Machine Virtuelle Java. Pour cela, faites un clic droit sur un fichier .jar, choisissez Propriétés et allez dans l'onglet Ouvrir avec. Il ne reste plus qu'à sélectionner la plate-forme d'exécution Java :

Si une telle option n'est pas disponible, cliquez sur le bouton Ajouter, dépliez dans le bas de la fenêtre la section Utiliser une commande personnalisée, et entrez le code :

java -jar

puis validez. Ensuite, sélectionnez Java dans la liste des applications.

Configurer le fuseau horaire pour Java

Sur d'anciennes versions d'Ubuntu, il est possible que les programmes Java n'indiquent pas la bonne date (quelques heures de décalage). Pour éviter cela, il faut aider la Machine Virtuelle Java à utiliser le bon fuseau horaire.

Cela se configure par la variable d'environnement TZ, qu'il est possible d'initialiser à Europe/Paris par exemple (consultez le fichier /etc/timezone pour obtenir la valeur par défaut de votre environnement).

Pour l'initialiser provisoirement (pour tester) :

export TZ='Europe/Paris'

Pour la configurer définitivement, éditez le fichier /etc/environment, qui contient les variables d'environnement chargées par défaut, et rajoutez :

TZ="Europe/Paris"

Ceci sera pris en compte au redémarrage du Shell d'exécution du programme Java.

Problème d'exécution d'Eclipse

Java-gcj (par défaut sous Eclipse) ne compile pas parfaitement toutes les applications. La manœuvre suivante permettra d'utiliser Java 6 en tant que JRE plutôt que GCJ.

Pour résoudre ce problème, il suffit de suivre les étapes suivantes :

  1. sudo update-alternatives --config java ⇒ Choisir la version « /usr/lib/jvm/java-6-sun/jre/bin/java »
  2. Relancer Eclipse.
  3. Menu Window → Preferences.
    • Puis Java - Installed JREs.
    • Cliquer sur le bouton « Search ».
    • Dans "emplacement", écrire « /usr/lib/jvm/java-6-sun/ ».
    • Cliquer sur « Valider ».
    • Sélectionner « jre » et valider.

1)
sélectionnez Accept License Agreement
2)
c'est le cas pour Intrepid x64
3)
telle que la page de paiement des impôts en ligne, ou les sites commerciaux d'impression de photos
  • java.1375029584.txt.gz
  • Dernière modification: Le 28/07/2013, 18:39
  • par lami