关于java classpath
java classpath就是Jvm查找类的路径。通常我们用idea编程打包运行可能不会关注这个设置。
但讽刺的是,有时你写一个类,然后用java命令运行,会报找不到或无法加载主类。我这边遇到的一个情况是类路径确实可以搜到这个类,但为什么还提示呢?
问题出在这个类引用了其他包中的类,而引用的这个包没在类路径中指定。
所以我用java-cp /pathTo/xxx.jar com.my.someClass运行,这样可以指定依赖的xxx.jar,但需要注意-cp指定了其他jar包的类路径,别忘了当前执行类的类路径,
所以用java -cp /pathTo/xxx.jar;. com.my.someClass 注意这边加了一个;.表示也把当前目录作为类路径,Linux下用:.
一般情况会将用到的Jar添加到classpath中。
感觉一些框架工具帮我们简化了很多开发细节,有时最基础的东西都没掌握。掌握一个东西,还是要自己多动手实践,思考。
缘起:
今天在学习一个教程时,有个类使用了zk的类。然后编译执行这个类,发生找不到类的情况。
最终发现需要添加zk安装目录下的lib目录。下面通过命令添加一个classpath:
export CLASSPATH="/home/software/apache-zookeeper-3.9.2-bin/lib/:$CLASSPATH"
我这边要么使用lib/的方式,要么指定lib/zookeeper-xxx.jar。使用lib/*.jar就不行。