我使用莫内塔爪哇货币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
慕丝7291255
相关分类