我在Eclipse IDE中编写了一个使用BouncyProvider类BouncyCastle.jar的程序。因此,为了编译我的类,我在项目类路径中添加了BouncyCastle.jar,它编译得非常完美。
现在我想将我的项目导出为Runnable JAR,所以当我从Eclipse中执行此操作时,默认情况下它会在该runnable jar中添加BouncyCastle.jar的类。
但我希望保持我的应用程序jar和BouncyCastle.jar彼此不同。
我怎样才能做到这一点?有人可以帮忙吗?
答案 0 :(得分:3)
听起来您想要使用“导出JAR文件”向导而不是“导出可运行的JAR文件”向导。导出 runnable jar文件时,Eclipse会尝试将运行应用程序所需的所有内容打包到单个存档中。另一方面,“导出JAR文件”向导使您可以更好地控制存档中打包的内容。您仍然可以创建一个可运行的jar文件,但是在执行jar时必须确保在类路径中包含BouncyCastle.jar。以下是分步说明:
您应该能够通过从命令行执行“ java -jar myjarfile.jar -classpath BouncyCastle.jar ”来执行jar文件。
答案 1 :(得分:1)
不幸的是,看起来你实际上并不能这样做。 JAR不能使用存储在其中的另一个JAR。
我会说,除非你有一个非常强大的理由说明你无法解开你的BouncyCastle.jar (比如许可问题?)
让它解压缩(你可以通过在Eclipse中添加BouncyCastle.jar作为外部存档来实现)。
Right-click on your project
Build Path...
Add External Archives...
Add your archive
Export as runnable JAR)
并观察您的包裹名称是否有冲突。
Here's an open Java bug ID I found describing your situation
答案 2 :(得分:0)
看起来这已经在Eclipse 3.5里程碑5中添加了。请参阅News了解最新版本和bug 219530