Archives de catégorie : 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

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

Transformer un projet Eclipse général en un projet Eclipse Android

Publié dans Java | 3 commentaires

Imaginons que vous ayez un projet Eclipse qui soit de type Java ou autre (ou rien du tout), mais que vous savez pertinemment que c’est un projet Android et que vous aimeriez bien l’utiliser en tant que tel (histoire de pouvoir travailler quoi). D’instinct, on voudrait faire un clic droit sur le dossier, puis Configure > …  mais il n’y a rien pour Android. Voici la technique que je mets en oeuvre quand ça m’arrive.

Il faut modifier le fichier .project (ouvrir l’onglet Navigator pour le voir, ou bien aller directement le chercher sous Windows ou autre dans le dossier du projet Eclipse en question) pour qu’il contienne :

Continuer la lecture

Android : main.out.xml:1: error: Error parsing XML: no element found

Publié dans Java | Laisser un commentaire

Tiens, voilà longtemps que je n’avais pas écris un nouveau billet ! Depuis Noël en fait. Qu’importe, me voilà de retour pour un billet sur Android ! Voilà une erreur avec laquelle j’ai dû découdre l’autre jour :

res\layout\main.xml:0: error: Resource entry main is already defined.
res\layout\main.out.xml:0: Originally defined here. ...\workspace\TP-Android\res\layout\main.out.xml:1:
error: Error parsing XML: no element found Error in an XML file: aborting build.

La solution

  • Supprimer le fichier main.out.xml
  • Cliquer sur le fichier de votre Activity principale (pour moi src/package-tp-android/main.java)
  • Relancer l’exécution

Si cela ne fonctionne toujours pas, essayez plutôt :

  • Supprimer le fichier main.out.xml
  • Cleaner le projet (Projet / Clean…) et rafraichir (F5 sur le projet, ou clic droit / Refresh)
  • Relancer l’exécution !

L’explication

Cette erreur est due à la création du fichier main.out.xml qui fait un doublon de nom avec le main.xml et ce fichier est créé si on lance un run à partir du main.xml. Pour éviter l’erreur, il faut donc lancer le run en sélectionnant un fichier Java (de préférence l’Activity principale) et ensuite utiliser l’historique des run.