我使用莫內塔爪哇貨幣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
提交
取消