我已经在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问题......
答案 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
代替