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