2017-05-24 17 views
1

slf4jlog4j 2.8をopenJDK 8(Ubuntu 8u131-b11-0ubuntu1.17.04.1の最新バージョン)で実行しようとしています。OpenJDK 8:ホスト名を解決できません

のMavenのOpenJDKを経由して、単純なJavaクラスを実行すると、ローカルホスト名を解決することができません:

Exception in thread "AWT-EventQueue-0" java.lang.NoSuchFieldError: preferIPv6Address 
    at java.base/java.net.InetAddress.init(Native Method) 
    at java.base/java.net.InetAddress.init(Native Method) 
    at java.base/java.net.InetAddress.<clinit>(InetAddress.java:333) 
    at org.apache.logging.log4j.core.util.NetUtils.getLocalHostname(NetUtils.java:53) 
    at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:539) 
    at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:617) 
    at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:634) 
    at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:229) 
    at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:152) 
    at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45) 
    at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194) 
    at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:122) 
    at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43) 
    at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46) 
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383) 

は方法

public static InetAddress getLocalHost() throws UnknownHostException 

のように見えますが、異なるオラクルのJavaに比べて実装されています。

/etc/hostsは、IPv6のレコードが含まれています

::1  ip6-localhost ip6-loopback 

答えて

1

問題がシステムにインストールJDK9によって引き起こされました。 Log4j 2.8はまだJava 9と互換性がありません。

JDK9を削除するか、JDK8に設定を変更すると問題が解決するはずです。 Debianで:

sudo update-alternatives --config java 
関連する問題