-
Probleme execution java
Bonsoir tout le monde mon problème est le suivant:
J'ai installé sur deux de mes machines j2sdk-1_3_1 pour pouvoir l'utiliser avec objectstorejava. Le tout c'est bien passé sur une des machines mais pour la deuxième j'ai une erreur et qui est la suivante quand je compile avec javac sa passe mais quand je met java NomClasse il me sort une erreur
Code:
Exception in thread "main" java.lang.NoClassDefFoundError : Pack(Nom de la classe)
et cela meme si la commande java est reconnue et qu'il n'y a pas d'autre version de jdk installé.
Merci d'avance pour vos réponses.
-
Cette n'a pas grand chose à voir avec la version de Java utilisée.
C'est juste qu'à l'exécution du programme, java ne trouve pas dans ton Classpath de classe nommée "Pack".
-
Oui t'as raison il fallait juste que j'ajoute une entrée dans le classpath.J'aurai une autre petite question si c'est possible imaginons que dans un cas on est quelque chose du genre
package1->Personne
avec personne le fichier a executer qu'est ce qu'il faut ajouter dans la classpath.
-
on a pas besoin de toucher au classpath pour éxéctuer java. Le classpath par défaut est bon.
-
Je suis d'accord avec toi tchize_.Mais dans mon cas je suis entrain de développer avec objectstore Java et il faut spécifier dans le CLASSPATH le chemin du fichier a compiler.Ce qui nous amène a mon problème quand j'utilise un fichier ou plusieurs sans qu'il soit dans un paquet sa marche bien mais dès que je les mets dans un paquet sa marche pas.
-
pour compiler, c'est javac chemin/vers/fichier.java. Le classpath par défaut de java, qui devrait satisfaire la pluspart des applications java, inclu: les classes de la jre, les classes dans ext/*.jar, ainsi que le classe accessible depuis le répertoire courant (./). Si tes classes sont dans un package, elles ont juste à être présente dans la bonne hierarche par rapport à ./, ou alors dans des .jar(exemple: org.company.MaClasse devra se trouver dans org/company/MaClasse.class, cette position étant relative à la racine d'une archive jar ou un des répertoire présents dans le classpath). Il est assez courant de vouloir ajouter des librairies au classpath (note que je n'ai pas ecrit CLASSPATH), ça se fait avec le paramètre -cp de la ligne de commande ou avec les Classpath: du MANIFEST.MF (pour les jars). La variable d'environnement CLASSPATH ne devrait jamais être modifiée, elle influence tous les programmes java, y compris ceux qui n'ont rien demandé :)
note qu'on peux rajouter des répertoires supplémentaires dans le classpath (paramètre -cp donc, ou autre config qui serait spécifique à ObjectMachin), c'est le même principe de relativité qu'avec ./
-
Merci tchize_ pour tes explications je comprend mieux maintenant mieux l'intérêt du classpath et comment l'utiliser.Je trouve qu'il est mieux de ne pas le toucher,mais dans mon cas je suis obligé de le faire a cause d'objetstore java.Il serait je pense mieux de laisser un ide tel que netbeans configurer le classpath comme il le fait souvent mais encore dans mon cas je suis obligé de le faire manuellement.Merci pour votre aide.