2013-07-09 9 views
1

je peux exécuter java dans Cygwin + Windows en utilisant les paramètres suivants (le répertoire sw/pot a plusieurs fichiers jar, et je choisir celui de la ligne de commande java pertinente):java classpath dans unix

CLASSPATH=.;C:\sw\java_6u35\lib\\*;C:\sw\jar\\* 
java org.antlr.Tool Calc.g 

mais j'ai les problèmes suivants lors de l'exécution sous linux:

(1) Je ne peux pas définir un nom de répertoire dans un classpath, la ligne suivante signale une erreur:

setenv CLASSPATH .:/sw/jdk1.6.0_35/lib/\*:/sw/jar/* 

(2) quand je courir explicitement avec -jar op Je reçois toujours une erreur:

java -jar /sw/jar/antlr-3.4.jar org.antlr.Tool Calc.g 
error(7): cannot find or open file: org.antlr.Tool 

Cependant, la classe existe. Quand je fais jar tf /sw/jar/antlr-3.4.jar, je reçois:

... 
org/antlr/Tool.class 

Ma question est la suivante: (a) comment puis-je préciser dans unix que mon pot-répertoire est xxx qui contient plusieurs fichiers jar, et (2) comment puis-je choisir le pot pertinent de ce répertoire à l'exécution?

+0

Quel shell utilisez-vous sous Linux? Si 'setenv' donne une erreur, il est probable que vous n'utilisiez pas csh. – devnull

+0

Oui j'utilise csh. – R71

Répondre

3

Pour spécifier plusieurs pots dans un répertoire, directement dans la commande java, utilisez ce

java -cp "/sw/jar/*" org.antlr.Tool Calc.g

Cela comprendra tous les bocaux

Si vous souhaitez définir le chemin de classe dans les systèmes Unix/Linux, utilisez cette commande

export CLASSPATH=/sw/jar/a.jar:/sw/jar/b.jar

0

dans unix l'utiliser pour définir le chemin:

export CLASSPATH=myClassPath 

de ne pas trouver votre pot, vous utilisez une barre oblique (/), cela signifie que vous chemin est absolu (pas par rapport à votre domicile dossier) est-ce que vous voulez?

si vous voulez le chemin d'être par rapport à votre tentative de dossier:

java -jar ~/mypathToMyJar 
+0

Oui, je veux un chemin absolu. – R71