Mac上的Java

时间:2011-10-26 19:29:56

标签: java windows macos

我已经在Windows上编写Java很多年了,只是转移到了Mac。

我正在运行以下命令,该命令可在PC上运行,但在Mac上却没有,我做错了什么。

java -classpath ./lib.patches/*:./lib.core/*:./lib.custom/* test.Test

这给了我一个ClassNotFound,但test.Test位于路径中的一个jar中。

感谢您的帮助。

好的,我进一步调试了,当我运行这个命令时

java -cp . test.Test

我已经解决了!!

脚本是从PC复制的,并且返回错误的结尾处。

这有创建ClassNotFound的奇怪结果。

从它的命令行工作但是从脚本中抛出ClassNotFound - 必须是Mac问题......

3 个答案:

答案 0 :(得分:3)

对我来说很好。 (转义为显示它与shell globbing无关,但无论哪种方式都有效。)

目录1中的lucene-core和目录2中的lucene demo,或两者都在一个目录中:

...lucene/lucene-3.4.0/tmp $ echo $CLASSPATH

...lucene/lucene-3.4.0/tmp $ java -cp ./1/\*:./2/\* org.apache.lucene.demo.IndexFiles -docs .
Indexing to directory 'index'...
adding ./1/lucene-core-3.4.0.jar
adding ./2/lucene-demo-3.4.0.jar
adding ./index/_0.fdt
adding ./index/_0.fdx
adding ./index/write.lock
1605 total milliseconds

如果您还需要基于当前目录的类文件,则应该明确地将.路径添加到类路径中。

答案 1 :(得分:1)

使用

验证@Dave Newton的结果
$ java -version
java version "1.6.0_26"

使用ThermometerDemo,此命令有效:

$ java -cp /opt/jfreechart/*:build/classes chart.ThermometerDemo

答案 2 :(得分:0)

java -cp './lib.patches/*:./lib.core/*:./lib.custom/*' test.Test

代替