求助:运行Java代码时触发ClassNotFoundException: org.apache.commons.math3.distribution.NormalDistribution
问题解决:ClassNotFoundException与主类找不到错误
核心原因
运行JVM时,类路径仅指定了Apache Math的jar包,未包含当前目录下你编译好的CumulativeProbability.class文件,导致JVM既找不到依赖的第三方类,也找不到你的主类。
正确运行命令
在C:\Distnormal目录下执行以下命令:
java -cp "C:\Distnormal\commons-math3-3.6.1.jar;." CumulativeProbability
;.是Windows系统的路径分隔写法,表示将**当前目录(.)**加入类路径,与jar包用分号分隔;如果是Linux/macOS系统,替换为:.(冒号分隔)。
原理说明
- 编译阶段:
javac -cp "C:\Distnormal\commons-math3-3.6.1.jar" CumulativeProbability.java能成功编译,是因为-cp让编译器找到了依赖的NormalDistribution类,生成了CumulativeProbability.class文件。 - 运行阶段:JVM需要同时加载你的主类和第三方依赖类,因此类路径必须同时包含第三方jar包和主类所在的目录。
额外验证步骤
- 确认
C:\Distnormal目录下存在CumulativeProbability.class文件(编译成功后自动生成)。 - 检查jar包路径是否拼写正确,确保
commons-math3-3.6.1.jar确实在C:\Distnormal目录下。
内容的提问来源于stack exchange,提问作者Ademir
相关产品推荐
相关产品推荐

