Catégories
Développement Développeur

Erreur « java.lang.NoClassDefFoundError: Could not initialize class org.h2.value.CompareMode »

Ce message d’erreur apparait au démarrage ou à l’utilisation d’une application qui utilise le kit de développement Oracle Java ?

Erreur : java.lang.NoClassDefFoundError: Could not initialize class org.h2.value.CompareMode

Pas très explicite comme message. Pourtant, rien n’a changé dans votre code et le problème survient à la fois dans une nouvelle installation du programme et après une mise à jour applicative.

 

Solution à l’erreur « java.lang.NoClassDefFoundError: Could not initialize class org.h2.value.CompareMode »

Il s’avère que le problème provient de la dernière version en date du JDK 8 Oracle.

Pour résoudre ce souci, il faut désinstaller le JDK 8 u 261 au profit d’une version antérieure, par exemple le JDK 8 u 201 qui est la dernière version gratuite proposée par Oracle.

1. Désinstaller le JDK 8 u 261.

2. Redémarrer le système d’exploitation pour être tranquille.

3. Installer un JDK 8 u 201 ou autre version antérieure à la 261 (231, 241, 251).

4. Modifier l’application pour prendre en compte cette modification. Il faut peut-être également modifier la variable système JAVA_HOME dans les paramètres de Windows Server ou de Linux.

Catégories
Expert Sécurité

Générer un CSR pour Code Signing Java

Certifier une application Java (JRE) permet d’éviter les messages d’erreur de sécurité et rassure les clients. La procédure est assez simple, il faut acheter un « Code Signing Certificate for Java » chez Symantec / Digitcert, Globalsign, GoDaddy ou autre autorité et utiliser ce certificat pour signer les fichiers jar. Afin de recevoir ou de renouveler un certificat CodeSigning existant, il faut générer un CSR (Certificate Signing Request, une demande de signature de certificat).

L’objectif est d’éviter ce type d’erreur au lancement d’une application Java :

Ce tutoriel explique comment générer un fichier CSR pour faire une demande de certificat Code Signing Java afin de certifier des fichiers Jar et sécuriser une application basée sur Oracle Java ou OpenJDK.

Prérequis : avoir un JDK installé (Java Development Kit) sur le poste qui exécutera la commande. Celui-ci n’a pas besoin d’être un PC de développeur. Ici, c’est un poste Windows qui est utilisé.

 

Générer un keystore et un CSR (RSC) pour certificat Code Signing Java

1. Ouvrir un Invite de commandes en tant qu’Administrateur pour ne pas avoir de problème d’écriture sur le disque dur.

2. Se placer dans un dossier libre, par exemple cd C:\certificat

3. Exécuter la commande pour créer une clé qui sera générée avec le keystore java.

keytool -genkey -keyalg rsa -keystore <path_and_create_a_KeystoreFilename> -alias <create_Aliasname> -keysize 2048

Soit par exemple, en cherchant l’exécutable keytool dans le dossier d’installation du JDK :

"C:\Program Files\Java\jdk1.8.0_201\bin\keytool.exe" -genkey -keyalg rsa -keystore keystore_csr -alias alias_csr -keysize 2048

4. Indiquer un mot de passe pour sécuriser ce fichier et le confirmer :

Entrez le mot de passe du fichier de clés :
Ressaisissez le nouveau mot de passe :

5. Répondre à toutes les questions posées :

Entrez le mot de passe du fichier de clés :
Ressaisissez le nouveau mot de passe :
Quels sont vos nom et prénom ?
[Unknown]: Jean Dupont
Quel est le nom de votre unité organisationnelle ?
[Unknown]: IT
Quel est le nom de votre entreprise ?
[Unknown]: SOCIETE
Quel est le nom de votre ville de résidence ?
[Unknown]: Paris
Quel est le nom de votre état ou province ?
[Unknown]: IDF
Quel est le code pays à deux lettres pour cette unité ?
[Unknown]: FR
Est-ce CN=Jean Dupont, OU=IT, O=SOCIETE, L=Paris, ST=IDF, C=FR ?
[non]: oui

6. Saisir un mot de passe :

Entrez le mot de passe de la clé pour <alias_csr>
(appuyez sur Entrée s’il s’agit du mot de passe du fichier de clés) :
Ressaisissez le nouveau mot de passe :

7. Toujours dans l’invite de commande, générer le fichier CSR depuis le keystore :

keytool -certreq -keystore <path_and_KeystoreFilename_from_step1> -alias <Aliasname_from_step1> -file <path_and_create_CSRFilename>.csr

Soit par exemple :

"C:\Program Files\Java\jdk1.8.0_201\bin\keytool.exe" -certreq -keystore "C:\certificat\keystore_csr" -alias alias_csr -file "C:\certificat\nouveaucsr.csr"

8. Confirmer le mot de passe.

9. Deux fichiers ont été créés dans le dossier indiqué. Envoyer le .csr à l’autorité de certificat pour créer ou renouveler un certificat de Code Signing Java.

Catégories
Intermédiaire Linux Logiciels

Où est le Panneau de configuration Java sur Linux

Pour configurer les paramètres du client Java (JRE, pour Java Runtime Environment) sur Windows 10, il suffit d’aller dans le menu Démarrer, Java et de trouver « Configurer Java » dans la liste. Sur Windows 7 et équivalents, on pouvait aussi le trouver dans le Panneau de configuration. Derrière ces raccourcis se cache l’exécutable javacpl.exe qui se trouve dans le chemin d’installation du JRE, par défaut C:\Program Files\Java\jre1.8.0_201\bin pour un JRE8 en 64bits. Mais qu’en est-il sur Linux et ses distributions Ubuntu, Debian, Fedora, Red Hat et compagnie ?

Ce tutoriel explique comment ouvrir le Panneau de configuration Java sur Linux, celui d’un JRE 8.

 

Ouvrir le Panneau de configuration Java sur Ubuntu, Debian, Red Hat, Fedora

1. Ouvrir un Terminal en local ou une connexion SSH distante si X11 est activé pour le report des écrans graphiques.

2. Exécuter la commande suivante :

/usr/bin/jdk1.8.0_201/bin/ControlPanel
  • remplacer « jdk1.8.0_201 » par la version Java installée
  • remplacer le chemin par celui du JRE, cela peut aussi être dans /opt

3. ControlPanel est l’équivalent de javacpl.exe d’un poste Windows. On peut ainsi configurer Java JRE version 8 en mode graphique.

Catégories
Linux Logiciels

Installer Java sur Ubuntu (JDK / JRE)

Par défaut, le système d’exploitation Ubuntu n’embarque pas le logiciel Java. Tant mieux car ses versions sont vite obsolètes en raison de correctifs qui comblent des failles de sécurité sans cesse découvertes. Si Java n’est plus indispensable au quotidien pour naviguer sur internet, certaines applications web ou métier imposent d’utiliser le runtime client (JRE) voire le Development kit (JDK). Deux solutions sont possibles pour installer Java sur Linux version Ubuntu / Debian : OpenJDK (Java version open source) ou JRE / JDK version propriétaire Oracle. Le tout se fait par ligne de commande dans un simple terminal.

 

Java est-il déjà installé ?

1. Mettre à jour le système : apt-get update

2. Vérifier si Java n’est pas déjà installé : java -version

Si un retour est affiché, le logiciel client (JRE) ou serveur (JDK) est présent sur Ubuntu dans la version indiquée.

 

Installer OpenJDK (Java open source)

1. Commande pour installer le client openjdk (donc uniquement le JRE) dans la dernière version 8 :

sudo apt-get install openjdk-8-jre

Si c’est la version 7 qu’il faut installer, demander : sudo apt-get install openjdk-7-jre

2. Vérifier l’installation :

java -version

Le retour doit être similaire à ceci :

openjdk version « 1.8.0_111 »
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2ubuntu0.16.04.2-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)

 

Installer Oracle Java

1. Ajouter le repo officiel Java Oracle :

sudo apt-add-repository ppa:webupd8team/java

2. Demander un rafraichissement des paquets disponibles :

sudo apt-get update

3. Installer Java version Oracle :

sudo apt-get install oracle-java8-installer

4. Modifier JAVA_HOME, exemple avec le chemin d’installation par défaut :

export JAVA_HOME=/usr/lib/jvm/java-8-oracle

5. Vérifier la bonne installation du logiciel :

java -version

qui doit renvoyer quelque chose comme :

java version « 1.8.0_92 »
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

Catégories
Développement Développeur Tutoriel

Version de Java utilisée pour générer un jar

Les logiciels réalisés en Java peuvent utiliser différentes versions du JDK (1.5, 1.6, 1.7, etc). Voici comment vérifier quelle version de Java a été utilisée, que cela soit pour un programme téléchargé sur internet ou pour être certain d’utiliser le bon JDK dans Eclipse / NetBeans.

 

Savoir quelle version de Java a été utilisée

1) Ouvrir le fichier .jar avec un logiciel pour ouvrir les archives (tel que 7Zip) :

2) Une fois le fichier ouvert, aller dans le dossier « META-INF » :

3) Faire un clic droit sur le fichier « MANIFEST.MF » et choisir « Edition » :

4) Le fichier « MANIFEST.MF » contient l’information que nous recherchions à la ligne commençant par « Build-Jdk » :