1

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

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

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

(1)我不能在classpath中设置目录名,下面一行报错:

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

但是,该类确实存在。当我这样做时jar tf /sw/jar/antlr-3.4.jar,我得到:

...
org/antlr/Tool.class

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

4

2 回答 2

4

要在一个目录中指定多个jar,直接在java命令中,使用这个

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

这将包括所有的罐子

如果你想在 Unix/Linux 系统中设置类路径,使用这个

导出 CLASSPATH=/sw/jar/a.jar:/sw/jar/b.jar

于 2013-07-09T13:17:56.473 回答
0

in unix use this to set the classpath:

export CLASSPATH=myClassPath

about not finding your jar, you're using a leading slash (/), that means that you path is absolute (not relative to your home folder) is this what you want?

if you want the path to be relative to your folder try:

java -jar ~/mypathToMyJar
于 2013-07-09T13:14:35.480 回答