Il faut faire “import package.classe”. Ou alors, tu écris ce que tu as à écrire dans la classe et tu laisses Eclipse deviner et écrire tout seul l’import.
purée non il me met encore une erreur ca me lourdeuuuu
Bussiere
Tout pareil que baron noir, tu écris le nom de la classe dont tu as besoin dans le code et tu fais « ctrl - space » et ca auto complète (à condition que ton autre projet soit bien ds le classpath du projet en cours)
on rajoute comment l’autre projet dans le classpath stp ?
merci
Bussiere
[quote=“Bussiere, post:24, topic: 27096”]on rajoute comment l’autre projet dans le classpath stp ?
merci
Bussiere[/quote]
Hmmm, là j’ai pas mon eclipse sous la main mais à priori c’est dans project properties -> Java build path.
Et là il y a un onglet pour ajouter tes autres projets (du même workspace) dans ton classpath.
HelloWorldExample.java:23: package javax.servlet does not exist
import javax.servlet.*;
^
rhaaa j’ai trouvé mais pourtant je suis sûr l’avoir fait mais à force de faire divers essais on s’y paume : http://www.apachefrance.com/Forums/index.php?showtopic=4032 à savoir [quote]pour cela, il faut copier le fichier dans le répertoire lib/ext du JRE sous ton JDK.[/quote]avec dans mon cas JAVA_HOME=C:\Program Files\Java\jdk1.5.0_06
CLASSPATH=C:\Program Files\Java\jre1.5.0_06\lib
J’ai donc mis les jar de C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib dans C:\Program Files\Java\jdk1.5.0_06\jre\lib\ext.
Mais pourquoi quand on mets le repertoire contenant les jar dans le CLASSPATH, javac s’en moque ?
Sinon quelqu’un peut-il m’expliquer quand même comment sont gérés les CLASSPATH et JAVA_HOME ou me donner un article clair? merci d’avance.
(avec les endorsed, extdirs etc…) J’ai bien trouvé des tonnes d’articles par google mais plutôt confus.
Parce que java c’est mal fait ^^
Il me semble qu’il faut mettre soit un répertoire qui contient des classes dans le classpath, soit mettre un jar dans le classpath. Mais quand on met un répertoire qui contient des jar ca marche pas.
Les serveurs d’app ont heureusement leur propre implem de classloader qui va chercher dans tous les jars d’un répertoire donné
En ce qui concerne tes cours de CLASSPATH (cherche à classloading), il faut voir que c’est juste le chemin ou java va chercher les classes que tu importes dans ton code. Ce chemin est composé d’une concaténation de CLASSPATH : celui de ton environnement (ta variable d’env CLASSPATH), celui de ton serveur d’app, celui de ton appli …
En général, évite de rajouter des jars dans les répertoires de ton JDK : Java = portable, donc c’est crade si tu veux filer un programme à qqn de lui dire de rajouter des jars dans son install de Java. Il vaut mieux mettre les jars dont a besoin ton appli dans un répertoire lib, et faire un script ANT capable de compiler (et d’exécuter si c’est pas une appli standalone) tout ton code à partir des jars ; plutôt que Ant tu peux plutôt aller voir Maven (qui est une surcouche de Ant) qui te permet de décrire tous les jars dont ton appli a besoin dans un xml et qui les télécharge automatiquement depuis le net.
Voilà, j’espère que je ne t’ai pas noyé ! (J2EE c’est un métier
merci. Bon ben j’ai essayé 2 secondes un retour arrière et ça marche sans déplacement de jar si je fais celajavac -extdirs "C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib" Bonjour.java
(ou alors en faisant la même chose mais pointant sur un répertoire de mon projet comme tu le conseilles).
sinon dans eclipse pour compiler sans éxecution, nécessaire surtout pour la partie web, je n’ai trouvé que cela comme ruse avec le menu external tools
location: C:\Program Files\Java\jdk1.5.0_06\bin\javac.exe
working directory : ${workspace_loc}
arguments : -verbose ${resource_loc}
et le résultat de la compil arrive brute de fonderie dans la console eclipse.
Bon maintenant que je comprends à peu près comment s’articule l’environnement java, maintenant je peux me mettre sérieusement au langage java sans me poser des questions basiques mais nécessaires (on peut difficilement se passer des jar externes et du web.xml que j’ai testé)
à bientôt sûrement dans pas longtemps (et pis j’ai pas testé le mode debug web sous ecplise)
edit: aucun interêt → Senseï
[quote=« phili_b, post:26, topic: 27096 »]HelloWorldExample.java:23: package javax.servlet does not exist
import javax.servlet.*;
^
rhaaa j’ai trouvé mais pourtant je suis sûr l’avoir fait mais à force de faire divers essais on s’y paume : http://www.apachefrance.com/Forums/index.php?showtopic=4032 à savoir avec dans mon cas JAVA_HOME=C:\Program Files\Java\jdk1.5.0_06
CLASSPATH=C:\Program Files\Java\jre1.5.0_06\lib
J’ai donc mis les jar de C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib dans C:\Program Files\Java\jdk1.5.0_06\jre\lib\ext.
Mais pourquoi quand on mets le repertoire contenant les jar dans le CLASSPATH, javac s’en moque ?
Sinon quelqu’un peut-il m’expliquer quand même comment sont gérés les CLASSPATH et JAVA_HOME ou me donner un article clair? merci d’avance.
(avec les endorsed, extdirs etc…) J’ai bien trouvé des tonnes d’articles par google mais plutôt confus.[/quote]
Il ne faut jamais mettre de librairie dans le répertoire jre\lib\ext, j’ai pas le courage de trouver des sources sur google mais ça ne doit pas être difficile : ce répertoire est réservé à Sun, ca marche mais c’est crade, ca peut foutre en l’air le fonctionnement du ClassLoader.
Je n’ai pas tout lu le thread, je le ferais surement ce soir,je vais juste apporter quelques réponses.
Pour JAVA_HOME, c’est juste une variable d’environnement qui contient le répertoire du JDK dans ton cas : ‹ C:\Program Files\Java\jdk1.5.0_06 › c’est aussi simple que ça
Pour CLASSPATH, c’est une liste de répertoire ou de fichier jar qui contiennent les classes utilisées par ton application. Soit tu le configure dans Eclipse dans les propriétés de ton projet (je n’ai pas eclipse sous la main pour expliquer dans les détails) ou tu peux aussi le définir comme une variable d’environnement par exemple :
C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\LE_NOM_DU_FICHIER_JAR.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\LE_NOM_DU_SECOND_FICHIER_JAR.jar etc…
D’après ce que j’ai vu tu as oublié de précisé les fichiers jar.
[quote=“ZGoblin, post:29, topic: 27096”]Il ne faut jamais mettre de librairie dans le répertoire jre\lib\ext[…]
Pour JAVA_HOME, c’est juste une variable d’environnement qui contient le répertoire du JDK dans ton cas : ‘C:\Program Files\Java\jdk1.5.0_06’ […]
Pour CLASSPATH, c’est une liste de répertoire ou de fichier jar qui contiennent les classes utilisées par ton application. […]C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\LE_NOM_DU_FICHIER_JAR.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\LE_NOM_DU_SECOND_FICHIER_JAR.jar etc…[/quote]J’ai mis le jar dans le jar dans le CLASSPATH et ça fonctionne
C’est clair que je prefère une solution comme cela qu’une solution bidouille comme recopier dans le répertoire ext. Car si j’ai bien compris ext est une extension de l’arborescence des classes et est donc lue comme telle avec les risques que ça peut comporter ("foutre en l’air le fonctionnement du ClassLoader’).
Mais en fait quand on pointe sur C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib, ce qui ne fonctionne pas, j’avais l’impression que ça allait chercher tout les jars alors qu’il faut pointer sur un jar principal car les jar sont au bout du compte une arborescence.
Par contre utiliser le paramètre optionnel extdirs sur un répertoire ne faisant pas partie du JDK est propre quand même ? (et/ou le mettre dans JAVA_OPTIONS ?) Ceci malgré que l’on parle d’extension aussi? C’est plus pratique dans le cas de distribution.
[quote]javac -extdirs “C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib” Bonjour.java[/quote]Sinon quelle est la diffèrence entre endorsed et extensions ?