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

引入BouncyCastle依赖后运行Java程序报错:找不到主类PBE

问题根源与解决办法

嘿,我一眼就发现问题所在啦——你在类路径里用了Windows风格的分号;,但从ls -lat的输出能看出来你是在macOS或者Linux环境下操作,这类Unix-like系统的类路径分隔符是冒号:,不是分号哦!

具体错误分析

你之前的运行命令:

java -classpath 'bcprov-jdk15on-159.jar;pbe.jar;' PBE

在Unix-like系统里,分号;是用来分隔多个命令的,不是类路径条目。JVM会把整个字符串当成一个路径去查找,自然找不到你的PBE主类,而且末尾多余的分号还会引入一个空路径条目,进一步干扰查找。

快速解决办法

方法1:用你打包好的pbe.jar运行

把分号换成冒号,去掉末尾多余的分号:

java -cp bcprov-jdk15on-159.jar:pbe.jar PBE

方法2:不用打包,直接运行class文件

其实你完全没必要打包成pbe.jar,直接用当前目录(.代表当前目录,包含你的PBE.class)加依赖jar就能运行:

java -cp .:bcprov-jdk15on-159.jar PBE

进阶优化:让jar包可直接运行

如果你想让打包后的pbe.jar可以用java -jar直接运行,可以在打包时指定主类和依赖:

  1. 新建一个manifest.txt文件,内容如下(注意最后要留一行空行!):
Main-Class: PBE
Class-Path: bcprov-jdk15on-159.jar

Class-Path后面的路径要和bcprov-jdk15on-159.jar的实际位置对应,要是和pbe.jar在同一目录就直接写文件名。

  1. 用下面的命令打包:
jar cvfm pbe.jar manifest.txt PBE.class

之后就可以直接运行:

java -jar pbe.jar

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:24:29