我使用莫内塔爪哇货币1.3来获得汇率:CurrencyUnit base = Monetary.getCurrency(...);CurrencyUnit term = Monetary.getCurrency(...);ExchangeRateProvider xrates = MonetaryConversions.getExchangeRateProvider();ExchangeRate xrate = xrates.getExchangeRate(base, term);如果我在 Eclipse 中运行代码,它可以正常工作。但是在使用 Maven 构建一个 jar 并从命令行运行该 jar 之后,将返回 null。ExchangeRateProvider.getExchangeRate(base, term)我还尝试指定交换率提供程序:在Eclipse中一切正常,从命令行中,它抛出一个货币异常,说“无效的交换速率提供程序(未找到):ECB”ExchangeRateProvider xrates = MonetaryConversions.getExchangeRateProvider("ECB");这个问题提到了同样的问题:“因为如果我在没有bp的情况下使用对money-api的依赖,我会得到空值。我尝试了接受的答案:ConversionQuery cq = ConversionQueryBuilder.of().setBaseCurrency(Base).setTermCurrency(Term).build();MonetaryAmount zero = FastMoney.zero(Base);ExchangeRateProvider xrates = MonetaryConversions.getExchangeRateProvider("ECB");CurrencyConversion cc = xrates.getCurrencyConversion(cq);ExchangeRate xrate = cc.getExchangeRate(zero);同样没有运气:在 Eclipse 中工作,但从命令行返回 null。这与构建 jar 时的依赖关系有关吗?我正在使用关闭最小化的Maven阴影插件。或者我也应该使用莫内塔-bp吗?这很奇怪,因为 moneta-bp 是作为 Java 7 的向后移植而构建的,而我使用的是 Java 8。还有其他想法吗?提前致谢!编辑:从日食运行交换速率提供程序是 的一个实例。从命令行来看,它是 的一个实例。查看标识速率提供程序的代码,它返回 null 是有道理的。但是如何获得化合物价格提供程序?org.javamoney.moneta.spi.CompoundRateProviderorg.javamoney.moneta.convert.internal.IdentityRateProvider
添加回答
举报
0/150
提交
取消