Login Logout

HowtoJava

Howto Java

http://docs.oracle.com/javase/

http://openjdk.java.net/

Installation Java

Sous Debian 6, Sun Java 6 ou OpenJDK 6. Sous Debian 7, OpenJDK 6 ou 7. Sous Debian 8, OpenJDK 7 (ou 8 via backports).

Installer OpenJDK 8 sous Debian 7

à compléter.

Installer Oracle Java 8 sous Debian 7 / 8 et 9

Le plus simple est de créer un package automatiquement en utilisant le tar.gz du site oracle.

1- Tout d’abord il faut ajouter le dépôt contrib dans /etc/apt/sources.list :

deb http://mirror.evolix.org/debian stretch main contrib

2- Mettre à jour les dépôts et installer le paquet java-package

apt update && apt install java-package

Sur Debian 7, il faut installé java-package depuis les backports, car il y a un bug avec la version de wheezy ici

3- Il faut télécharger l’archive .tar.gz depuis le site d’Oracle, et utiliser la commande make-jpkg pour créer le paquet Debian :

Pour télécharger l’archive en acceptant les conditions d’Oracle, on peut utilisé ces options avec wget :

wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" 

IMPORTANT: A ne pas exécuter en root, mais avec son utilisateur.

$ make-jpkg jdk-8u51-linux-x64.tar.gz

Pour faire le build du paquet Debian, le TMPDIR par défaut est /tmp/, il faut donc que la partition /tmp/ soit en exec ou s’il y a pas assez de place dans /tmp on peut spécifier un TMPDIR différent, par exemple dans son /home/ :

$ TMPDIR=/home/utilisateur/ make-jpkg jre-8u144-linux-x64.tar.gz

4- On peut ensuite installer le paquet Debian généré :

# dpkg -i oracle-java8-jdk_8u51_amd64.deb

Java sécurité

Importer un certificat racine

Java stocke ces certificats dans un fichier, situé dans /usr/lib/jvm/java-6-sun/jre/lib/security/cacerts (sous Debian).

Pour lister les certificats :

$ keytool -list -v -keystore /usr/lib/jvm/java-6-sun/jre/lib/security/cacerts

Pour importer un nouveau certificat, on peut utiliser la commande keytool :

$ keytool -import -v -file certificat.cer -alias <mykey> -keystore /usr/lib/jvm/java-6-sun/jre/lib/security/cacerts

(/usr/lib/jvm/java-6-sun/jre/lib/security/cacerts est en fait un lien symbolique vers /etc/java-6-sun/security/cacerts).

Il est ensuite demandé un mot de passe pour ouvrir la base de données des certificats. Par défaut, il s’agit de changeit.

Si vous ne précisez pas d’alias vous pourriez rencontrer l’erreur suivante :

keytool error: java.lang.Exception: Certificate not imported, alias <mykey> already exists

Basiquement, cela peut vouloir dire que le certificat a déjà été importé avec l’alias par défaut: mykey, il faudra donc trouver un autre nom pour importer le certificat.

Pour supprimer un certificat (parce qu’il est expiré par exemple) :

$ keytool -delete -keystore /usr/lib/jvm/java-6-sun/jre/lib/security/cacerts -alias <mykey>

Java Cryptography Extension (JCE)

http://gcolpart.evolix.net/blog21/jce-non-limitees-sous-debian/

Sous squeeze :

Télécharger le fichier ici : http://download.oracle.com/otn-pub/java/jce_policy/6/jce_policy-6.zip

# dpkg-divert --add --rename --divert /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/US_export_policy.jar.debianorig /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/US_export_policy.jar
# dpkg-divert --add --rename --divert /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/local_policy.jar.debianorig /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/local_policy.jar
- (Télécharger sur votre poste) sur le site d'oracle : <http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html> | scp sur le serveur
# cd /home/$USER
# unzip jce_policy-6.zip
# cp jce/US_export_policy.jar /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/
# cp jce/local_policy.jar /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/
# chmod 644 /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/*.jar

Il faut aussi modifier /etc/java-6-sun/security/java.security, en mettant les lignes suivantes après # List of providers and their preference orders (see above):

security.provider.1=org.jasypt.hibernate.type.EncryptedStringType
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
security.provider.6=com.sun.security.sasl.Provider
security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.8=sun.security.smartcardio.SunPCSC
security.provider.9=sun.security.provider.Sun

Sous Wheezy avec JRE Oracle (pas OpenJDK) :

Télécharger le fichier ici : http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

# cd /home/$USER
# unzip UnlimitedJCEPolicyJDK7.zip
# cp UnlimitedJCEPolicy/US_export_policy.jar /usr/local/opt/jdk1.7.0_45/jre/lib/security/
# cp UnlimitedJCEPolicy/local_policy.jar /usr/local/opt/jdk1.7.0_45/jre/lib/security/
# chmod 644 /usr/local/opt/jdk1.7.0_45/jre/lib/security/*.jar

Il faut aussi modifier /usr/local/opt/jdk1.7.0_45/jre/lib/security/java.security, en mettant les lignes suivantes après # List of providers and their preference orders (see above):

security.provider.1=org.jasypt.hibernate.type.EncryptedStringType
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
security.provider.6=com.sun.security.sasl.Provider
security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.8=sun.security.smartcardio.SunPCSC
security.provider.9=sun.security.provider.Sun