unix中的java classpath

我可以使用以下设置在cygwin + windows中运行java(sw / jar目录有几个jar文件,我从java命令行中选择相关的一个):

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

但是在linux中运行时遇到以下问题:

(1)我无法在类路径中设置目录名,以下行报告错误:

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

(2)当我用-jar选项明确地运行时,我仍然会收到错误:

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

但是,这个class确实存在。 当我做jar tf /sw/jar/antlr-3.4.jar ,我得到:

 ... org/antlr/Tool.class 

所以我的问题是:(a)如何在unix中指定我的jar目录是包含几个jar文件的xxx,以及(2)如何在运行时从这个dir中选择相关的jar?

要直接在java命令中指定目录中的多个jar,请使用此命令

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

这将包括所有的jar子

如果要在Unix / Linux系统中设置类路径,请使用此方法

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

在unix中使用它来设置类路径:

 export CLASSPATH=myClassPath 

关于没有找到你的jar,你正在使用一个前导斜杠(/),这意味着你的路径是绝对的(不是相对于你的主文件夹)这是你想要的吗?

如果您希望路径相对于您的文件夹,请尝试:

 java -jar ~/mypathToMyJar