2010-02-10 8 views
0

Je cours un programme de Java dans l'invite de commande. J'ai placé le "C: \ j2sdk1.4.2_09 \ bin" dans la variable de système de PATH. Ensuite je peux compiler et exécuter le programme. Mais comme j'ai besoin de placer le connecteur mysql j'ai placé ceci dans "C: \ mysql-connecteur-java-5.1.10 \ mysql-connecteur-java-5.1.5-bin.jar " variable CLASSPATH mais maintenant je suis capable de compiler le programme que je lance le programme que je reçois" Exception dans le fil principal java. lang.NoClassFoundDefError ". Comment est-ce? Quelqu'un peut-il élaborer à ce sujet?confusion dans CLASSPATH et PATH

Répondre

5

Il est assez clair que vous demandez ici. Êtes-vous en train de dire que vous avez changé votre CLASSPATH et que maintenant la classe ne peut pas être trouvée?

Une chose à garder à l'esprit est que le CLASSPATH n'a pas, par défaut, inclut le répertoire courant. Vous devez l'ajouter (.) si vous le voulez dans le CLASSPATH, .: par exemple

set CLASSPATH=.;C:\mysql-connector-java-5.1.10\mysql-connector-java-5.1.5-bin.jar 

(Notez que je mets un .; au début de cela.)

PATH et CLASSPATH sont sans aucun rapport. PATH indique à Windows où trouver les programmes exécutables (et inclut implicitement le répertoire en cours) lorsque vous les exécutez sans lui donner un chemin explicite. CLASSPATH indique au runtime Java où il peut charger des classes.

Toutes mes excuses si cela est complètement hors de la base; Si oui, pourriez-vous clarifier votre question?

+0

Peut-on ajouter chemin et CLASSPATH les deux? – Tanveer

0

D'accord avec la réponse ci-dessus, parce que je l'ai fait moi-même un million de fois. L'exception que vous obtenez est presque certainement liée à votre chemin de classe sans inclure le "." qui dit à Java d'inclure le répertoire courant dans sa mort pour les classes.

Il semble contre-intuitif que Java ne comprend pas automatiquement le répertoire en cours dans sa recherche, mais chaque fois que vous modifier manuellement le classpath, vous devez inclure cela.

La raison? Lorsque vous ne spécifiez pas un chemin de classe, un chemin par défaut est utilisé, qui inclut le "." Et qui est transparent pour vous.

0

Avant de répondre à votre question, juste Wann ans cette simple question: Pourquoi nous avons besoin PATH et CLASSPATH?

Réponse:

1) CHEMIN: Vous devez définir PATH pour compiler le code source Java, créez la classe Java fichiers et du système d'exploitation pour charger les classes lors de l'exécution.

2) CLASSPATH: Classpath en Java est le chemin vers le répertoire ou une liste de répertoire qui est utilisé par classloaders pour trouver et classe de charge en Java program.This est utilisé par machine virtuelle Java et non par système d'exploitation.

Modifier variables PATH (Windows système variable d'environnement) afin qu'il pointe vers bin dir qui contient tout exe par exemple: java, javac etc Dans mon cas, il est comme ceci: ; C: \ Program Files \ Java \ jre7 \ bin.

Classpath peut être spécifié en utilisant la variable d'environnement CLASSPATH qui est insensible à la casse, l'option de ligne de commande ou -cp -classpath ou attribut classe chemin dans le fichier manifest.mf dans le fichier JAR en Java.

Pour CLASSPATH en détail s'il vous plaît se référer ce lien « http://javarevisited.blogspot.in/2011/01/how-classpath-work-in-java.html »