Utilisateur de Mac - Comment puis-je configurer les chemins de classe sous Mac (je suis en train de travailler sur un Lucene Démo)
J'essaie d'obtenir mon Apache Lucene démo pour le travail et je suis à la définition du classpath dans ce tutoriel http://lucene.apache.org/java/2_3_2/demo.html
J'ai chassé le web et ces wer les 2 solutions que j'ai trouvées pour définir le CLASSPATH:
CLASSPATH=${CLASSPATH}:/Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/lucene-core-3.0.3.jar
et
setenv CLASSPATH ${CLASSPATH}:/Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/lucene-core-3.0.3.jar
Le second affiche une erreur
-bash: setenv: command not found
Le premier semblait accepter ok, mais wen, j'ai essayé la prochaine étape dans le tutoriel, j'ai eu une erreur. La prochaine étape consiste à exécuter les opérations suivantes:
Phil-hunters-MacBook:webapps philhunter$ java org.apache.lucene.demo.IndexFiles /Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/src
qui m'a donné le message d'erreur:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/lucene/demo/IndexFiles
Cela m'amène à croire que mon CLASSPATH n'a pas réglé correctement. Serais-je raison de supposer cela? J'ai essayé d'autres tutoriels et démonstrations et voir pour obtenir ce même message d'erreur un peu. Im nouveau à Lucene et relativement nouveau sur mac et Unix shell script. Quelqu'un sait si je suis en train de le CLASSPATH correctement et si c'est la cause de l'erreur?
OriginalL'auteur Phil Hunter | 2011-02-01
Vous devez vous connecter pour publier un commentaire.
Lorsque vous définissez une variable d'environnement comme
CLASSPATH
alors, par défaut, il s'applique uniquement au processus en cours (c'est à dire le processus du shell lui-même) - il n'est pas disponible pour le processus java vous lancer dans la ligne suivante. Afin de les rendre disponibles à d'autres processus dont vous avez besoin à "l'exportation" de la variable. Dans ce cas, vous pouvez utiliser quelque chose comme:Cela dit en gros "définir la variable CLASSPATH à sa valeur actuelle plus l'emplacement de la lucene pot, et de faire de la nouvelle variable à la disposition de tout processus lancé à partir de ce shell".
Cependant, avec java la manière habituelle de la définition de la classe est de le faire dans le cadre de la
java
commande elle-même, à l'aide de la-classpath
ou-cp
options. Dans votre cas, il ressemblerait à quelque chose comme:Que d'un côté, l'erreur que vous voyez lors de l'utilisation de la
setenv
ligne est parce quesetenv
est la commande utilisée dans le C shell pour définir des variables d'environnement, mais la valeur par défaut de Mac shell (et le shell que vous utilisez) estbash
qui ne reconnaît passetenv
et vous permet de savoir qu'il ne reconnaît pas avec le message d'erreur:-bash: setenv: command not found
.OriginalL'auteur matt
dans le terminal, tapez
modifier le fichier et ajouter une ligne:
assurez-vous de modifier le chemin d'accès de la vôtre.
Dans votre chemin, vous perdez à ajouter lucene-demo-3.0.3.jar dans votre classpath.
OriginalL'auteur malajisi
- je créer un .bash_profile fichier dans mon répertoire home et faire des choses comme
vous pouvez travailler de que pour définir le classpath -- ces exemples montrent comment déclarer une variable d'environnement et comment utiliser la variable dans d'autres variables.
bash
. Voir aussi cs.sjsu.edu/faculty/froomin/Handouts/Shell_Ref_Page.htmlCela ne fait pas sens pour être sur la création d'une .bash_profile fichier. Je ne sais pas quoi faire.
ce qui n'a pas de sens? Vous devez créer un fichier '.bash_profile " dans votre répertoire home, et ajouter les commandes appropriées pour configurer votre environnement.
l'exportation PHIL_HOME=/Users/philhunter CLASSPATH=${CLASSPATH}:/Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/lucene-core-3.0.3.jar CLASSPATH=${CLASSPATH}:/Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/lucene-demo-3.0.3.jar ................... C'est mon fichier que j'ai enregistré dans /Utilisateurs/philhunter appelé .bash_profile Est-ce exact?
OriginalL'auteur hvgotcodes