java: l'importation, le chemin de classe, et les paquets
J'ai un fichier qui importe org.le w3c.dom.Document. La compilation et l'exécution est très bien, mais je ne comprends pas comment il sait où trouver ce colis et je suis juste curieux de voir comment il fonctionne. J'ai utilisé la commande locate pour essayer de le trouver org.le w3c.dom, mais je ne reçois rien. Où les forfaits sont-ils situés? Il me semble que le bon endroit pour le look de la variable d'environnement CLASSPATH depuis mes résultats de recherche semblent être ce qui suggère que. Est-ce correct? En tout cas, je ne sais pas comment trouver ce que ma variable est. Il ne semble pas être une variable d'environnement qui ma coquille connaît.
OriginalL'auteur bhh1988 | 2011-10-22
Vous devez vous connecter pour publier un commentaire.
Qui serait une partie du les bibliothèques de base (
rt.jar
), donc il faudrait être partout où vous avez installé java JRE; plus précisément, en vertu de$JAVA_HOME/jre/lib
Vous pouvez regarder à l'intérieur de la
.jar
fichiers à l'aide de lajar
de commande. Pour voir la classe que vous mentionnez, vous pouvez le faire:Cette liste toutes les classes dans ce pot.
Noter que cet emplacement est automatiquement recherché par la JVM - il n'est pas nécessaire, ni inclus dans le CLASS_PATH variable d'environnement. (Vous pouvez l'ajouter, mais il serait tout simplement redondants)
Modifier pour plus de clarté:
La JVM comprend
<Where_you_installed_jdk>/jre/lib
et<Where_you_installed_jdk>/jre/lib/ext
par défaut. Tout le reste doit être explicitement ajoutées par vous, soit par le passant à java directement via le-cp
option ou de l'ajouter à laCLASS_PATH
variable d'environnement.Le ème de la documentation peut être trouvée à: http://download.oracle.com/javase/6/docs/technotes/tools/findingclasses.html
J'étais simplement en utilisant JAVA_HOME dans ma réponse à illustrer où le fichier a été trouvé; je n'ai aucune idée de l'endroit où vous avez installé java sur votre machine 😉 Comme CLASS_PATH, il n'est également pas nécessaire à l'exécution de programmes Java - un peu comme la façon dont je l'ai utilisé dans mon exemple, il est généralement utilisé pour de choses à être en mesure de trouver l'endroit où vous avez installé java sur votre machine.
Je vois maintenant, merci!
CLASSPATH
, pasCLASS_PATH
OriginalL'auteur Brian Roach
La JVM trouve classes à l'aide de paramètres de chemin de classe où alll chemins de paquets nécessaires sont définies. Le chemin de la classe peut être définie avec un certain nombre de façons. Le premier mentionné par vous est variable d'environnement CLASSPATH. Il est facultatif et peut être supprimée. La deuxième façon est une option explicite "-cp" pour "java" exécutable.
Aussi quelques JRE runtime pots sont ajoutés à classpath par défaut, implicitement, de sorte que vous n'avez pas besoin de rechercher et ajouter des packages standard par vous-même (en particulier celui que vous avez mentionné dans votre question).
Bien, en fait, vous pouvez regarder votre répertoire d'installation du JDK pour vérifier l'exécution des pots (rt.jar). Mais ces pots ne sont pas affichés dans le classpath comme ils sont la partie de la Java runtime library.
OriginalL'auteur xappymah
essayez de compiler messconvener.java comme ce à partir de son propre répertoire
javac -d ..\..\. -cp ..\..\. messconvener.java
-d - crée la structure de répertoire de votre colis,
-cp - offre une classe de chemin pour le fichier de l'utilisateur, où il peut trouver de l'utilisateur défini par les classes
OriginalL'auteur saikumarm