You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu命令行运行含外部Jar的Java程序报错:主类无法找到或加载

解决Java运行时找不到主类的问题

嗨,这问题我刚学Java的时候也踩过坑!你编译成功但运行失败的原因其实很简单:运行命令里的classpath没包含当前目录。

问题根源

编译时用javac -cp jars/commons-lang3-3.7.jar MyTest.java能成功,是因为javac默认会把当前目录(.)加入classpath,所以能找到你的源文件并生成MyTest.class。但运行时规则不一样:当你显式指定-cp参数时,Java会覆盖默认的classpath设置(默认是.)——你只把外部Jar加到了classpath里,却没告诉Java要在当前目录找你的MyTest.class文件,自然就找不到主类了。

正确的运行命令

你需要把当前目录(.)和外部Jar一起加到classpath里,Linux/Unix系统下多个路径用冒号:分隔,命令如下:

java -cp .:jars/commons-lang3-3.7.jar MyTest

额外小技巧

如果后续要引用多个外部Jar,还可以用通配符简化命令,比如:

java -cp .:jars/*.jar MyTest

只要显式指定-cp,就一定要把自己写的类所在的目录(这里是当前目录)加进去,不然Java只会去你指定的Jar里找类,找不到你本地编译好的.class文件。

运行这个修正后的命令,你就能看到程序正常输出了!

内容的提问来源于stack exchange,提问作者Farley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:30:53