同事新分的测试机resin启动的时候出现了Java.NET.UnknownHostException异常,问题原因是在系统的 /etc/Hostname中配置了主机名,而在/etc/hosts文件中没有相应的配置。简单的解决办法是对应关系配好就可以,甚至除/etc/Hostname这个文件也可以。

java.Net.UnknownHostException异常处理问题怎么解决

深层的原因: 在大多数Linux操作系统中,都是以/etc/hosts中的配置查找主机名的,但是 Detian based system用/etc/Hostname文件中的配置做主机名。

而Java 的InetAddress.java 调用 InetAddressImpl.java 的   public native String getLocalHostName() throws UnknownHostException; 来获取本地主机名, Java 的这个方法是native的,是本地系统的一个实现,所以在本地配置出现问题的情况下,Java 代码出现问题。

hostname 查看本机名称,

结论:
    1. 设置本机名称:hostname mName     xxx最好不是写IP地址的形式,若写则必须是本机的完全IP形式(不要只写一半)
    2. 在/etc/hosts里加一行 本机IP mName
    3. 用InetAddress.getLocalHost().getHostAddress()测试一下结果是否是与本机IP一致

本文转载于:https://www.yisu.com/zixun/779526.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。