Archives par mot-clé : Java

Maven Error « Could not find Launcher »

Publié dans Java | Laisser un commentaire

If you have the following error when launching a Maven command, for example « mvn install »:

Could not find the main class: org.codehaus.plexus.classworlds.launcher.Launcher

Your are probably using a Maven 2 configuration for a Maven 3 usage. Delete your global variable M2_HOME and it should work. You can use M3_HOME instead to select the folder for the « repository » of dependencies, and the emplacement of the configuration file settings.xml.

Erreur Maven 3 « Could not find Launcher »

Publié dans Java | Laisser un commentaire

Lorsque vous lancez une commande Maven (par exemple « mvn install ») et que vous obtenez l’erreur suivante :

Could not find the main class: org.codehaus.plexus.classworlds.launcher.Launcher

ou en français :

Erreur : impossible de trouver ou charger la classe principale org.codehaus.plexus.classworlds.launcher.Launcher

Pas de panique ! La solution la plus probable est que vous utilisez une configuration de Maven 2 pour utiliser Maven 3.
Avec Maven 3, il faut enlever le variable d’environnement M2_HOME : et normalement ça marche ! Si besoin, il est possible d’utiliser M3_HOME pour préciser l’emplacement pour déployer / récupérer les dépendances (dossier « repository ») et où placer le fichier de configuration utilisateur « settings.xml ».

Une boucle propre sur un Cursor en Java

Publié dans Java | Laisser un commentaire

Plusieurs solutions s’offrent à nous pour effectuer une boucle sur un objet Cursor en Java.

La plus sérieuse

Cursor c = ......;
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
	// Do something
}
c.close();

Mieux, efficace et fun !

Cursor c = ......;
c.moveToFirst();
do {
// Do something
} while (c.moveToNext());
c.close();
Problèmes de mémoire ?

Maven OutOfMemoryError

Publié dans Java | Laisser un commentaire

Maven Error

Maven failed during a build whit the following error:

The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError: PermGen space

Solution

Add the environment variable MAVEN_OPTS: -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m

Problèmes de mémoire ?

Maven OutOfMemoryError

Publié dans Java | Laisser un commentaire

Erreur Maven

Lors d’un build, Maven s’arrête en failure et s’explique par l’erreur suivante :

The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError: PermGen space

Solution

Ajouter la variable d’environnement MAVEN_OPTS : -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m

Erreur Android : « Debug certificate expired »

Publié dans Java | Laisser un commentaire

Lors de la compilation, si Android vous sort une erreur du style « Debug certificate expired » : ni une ni deux, allez voir votre SDK et supprimez le fichier debug.keystore situé dans le répertoire .android généralement placé dans votre répertoire utilisateur. En clair : ~/.android/debug.keystore (Linux et Mac OS X) %USERPROFILE%/.android/debug.keystore (Windows).

Une réponse longue et plus précise est lisible ici :

"Debug certificate expired" error in eclipse android plugins – Stack Overflow.

Logo Eclipse

Ajouter l’option -vm dans eclipse.ini

Publié dans Java | 2 commentaires

Ce que l’on veut faire

On souhaite préciser le chemin du JDK que la JVM (machine virtuelle Java) utilisera pour faire tourner Eclipse. Certains plugins comme M2Eclipse (le plugin Maven d’Eclipse) en ont parfois besoin car ils utilisent le JDK et non le JRE Java, et c’est donc un moyen de s’assurer que la configuration est bien faites.

Voici un exemple de message d’erreur qui vous incite à ajouter cette option dans le fichier eclipse.ini :

Le JDK étant plus large que le JRE, vous pouvez effectuer cette opération sans crainte.

Continuer la lecture

XMPP et Java avec Smack : un peu de Privacy

Publié dans XMPP | Un commentaire

Une extension XMPP en cours de standardisation permet de gérer les permissions d’accès  : l’extension Privacy. Le terme Privacy fait beaucoup penser à la protection des données personnelles, or en réalité avec cette extension, on gère simplement les permissions pour me contacter ou connaître ma présence.

L’idée général est simple :

  • On définie des règles dans un PrivacyItem (ex : j’autorise Jacques à m’envoyer des messages, mais pas Pierre)
  • On créé un PrivacyList qui contient autant de PrivacyItem que souhaité
  • On ajoute ce ou ces listes à notre PrivacyListManager et on active la liste à utiliser

Voici ce que cela donne avec la librairie Smack :

// Create PrivacyItems
List<PrivacyItem> privacyItems = new ArrayList<PrivacyItem>();
PrivacyItem item = new PrivacyItem(...);
// On verra ça plus bas
privacyItems.add(item);
// Add it
PrivacyListManager privacyManager = PrivacyListManager.getInstanceFor(xmppManager.connection);
privacyManager.createPrivacyList("blockedPeople", privacyItems);
privacyManager.setDefaultListName("blockedPeople");

Regardons plus en détails ce qu’il est possible de faire avec cette extension.

Continuer la lecture

XMPP et Java avec Smack : b.a.-ba

Publié dans XMPP | Laisser un commentaire

Après le serveur XMPP et le client XMPP, nous allons nous intéresser d’avantage au côté client en codant quelques bribes de Java pour faire du XMPP. Pour cela, il existe encore une liste de librairies XMPP proposée par XMPP.org, et, comme précédemment, j’ai choisi celle qui m’a été conseillée et qui est développée par Jive Software : Smack !

Pour faire mes tests, j’ai lancé en local un serveur Openfire, sur lequel j’ai créé deux utilisateurs : « Fylhan » et « Test ». J’ai lancé Fylhan sur le client XMPP Spark et je vais utilisé « Test » pour mes tests. (quand je dis que j’ai « lancé Fylhan », je ne parlais pas de moi hein !)

Continuer la lecture

Logo Virgo

Let’s work OSGi Virgo on Eclipse

Publié dans Java | 4 commentaires

Virgo se présente comme le nouveau et futur module OSGi pour Eclipse performant et facile à utiliser. En très gros, il offre les fonctionnalités du framework Spring (puisqu’il s’appuie dessus) permettant de gérer convenablement des projets OSGi, et fournit un serveur OSGi (appelé Virgo, anciennement Spring dm Server) utilisant Equinox. N’hésitez pas à visiter le site Web de Virgo pour en savoir plus. Ah oui, et OSGi, c’est un « framework » Java pour gérer des projets Java en s’occupant des dépendances, des cycles de vies, et de tout un tas de choses… Il existe deux implémentations phares de Virgo : Felix et Equinox. Hum, bref, je vous renvoie la page Wikipédia d’OSGi !
Logo de l'alliance OSGiCar ce dont je souhaite bloguer aujourd’hui (du verbe « bloguer » : je blogue, tu bolgues, il/elle/on bluoge, nous bogluons, vous bugolez, ils bolugent), c’est de l’installation d’un environnement Virgo (sur Eclipse, forcément, pas vraiment le choix) !
Continuer la lecture