2017-06-19 61 views
2

我一直在使用Business Objects的RESTful API创建一个简单的Java桌面应用程序,并且遇到了问题。每当我在Eclipse中运行我的应用程序时工作正常;每当我将它作为'Runnable Jar'导出并选择库处理选项'将所需的库打包到生成的JAR中'时,它都可以正常工作。但是,每当我尝试使用库处理选项“提取所需的库到生成JAR”我收到以下错误运行该应用程序后,将其导出:导出Java应用程序时Business Objects的'bcm.jar'错误

java.lang.NoClassDefFoundError: Could not initialize class com.businessobjects.bcm.BCM 

我已经下添加了“bcm.jar”文件'res'源文件夹并将其添加到构建路径中。有一次,我在“SAP BusinessObjects”java文件夹和外部文件夹下添加了所有JAR,但仍然会抛出错误。问题源于这一行代码:

enterpriseSession = CrystalEnterprise.getSessionMgr().logon(userID, password, CMS, auth); 

有人会知道为什么我会说错误吗?我真的很想使用Extract选项,因为它会提高性能,因为我的应用程序变得更大。任何帮助解决这个问题将不胜感激:)

编辑:我会很乐意提供澄清或进一步的细节根据要求!

+0

从https://stackoverflow.com/questions/9617420/difference-between-extracting-and-packaging-libraries-into-a-jar-file,Main类在两种情况下是不同的。 – mikep

+0

嘿mikep,谢谢你评论:)我已经看过过去的确切文章,这部分原因是为什么我想使用Extract方法而不是Packaging。虽然我理解打包和解压之间的区别,但我不明白为什么这个bcm.jar在几十个其他SAP jar没有的时候有问题。我唯一一次麻烦包装我的应用程序的时候是我使用这个罐子;我正在尝试查看是否有某种方法可以在使用此jar的同时打包我的应用程序。 –

+0

bcm.jar中的META-INF怎么看lijke(jar tvf)? – mikep

回答

1

您是否包含cryptojFIPS.jar?离开它可能会导致错误。

+0

你好fossoss。是的,我在我的'res'文件夹下包含了cryptojFIPS.jar文件,它是构建路径的一部分。 –

+0

我只是猜测,但你有没有检查bam.jar或cryptojFIPS.jar是否包含统一jar中没有包含的其他资源(如xml配置文件)? – fhossfel

+0

从我看到的bcm.jar和cryptojFIPS.jar文件只有他们下面的类,没有XML文件或任何东西。 –