关于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就不行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统