在 Java 8 中,如何获取主机名而不在我的环境中对其进行硬编码?

2024-01-01

我们刚刚在 Amazon Linux 上升级到 Java 8。我们正在使用 Spring 4.3.8.RELEASE。过去,我们可以通过在应用程序上下文文件中设置 bean 来获取机器主机名,如下所示......

<bean id="localhostInetAddress" class="java.net.InetAddress" factory-method="getLocalHost" />
<bean id="hostname" factory-bean="localhostInetAddress" factory-method="getHostName" />

但在 Java 8 中,bean“主机名”现在包含字符串

localhost

在 Java 8 之前,它曾经包含在命令行上运行的“主机名”值,即

[myuser@machine1 ~]$ hostname
machine1.mydomain.org

如何重新配置​​我们的 bean,以便它获取命令行列出的主机名?我不想在任何地方硬编码任何东西。


From InetAddress java 8 未获取主机名 https://stackoverflow.com/questions/38622631/inetaddress-java-8-is-not-getting-the-hostname :

JDK 中也存在类似的错误。

据我了解,他们更改了默认解析过程。

它们遵循 /etc/nsswitch.conf 中的配置,其中为 /etc/hosts 配置主机,这为其提供了名称解析的主要优先级。

通常 /etc/hosts 有 127.0.0.1 localhost 的记录,为主机 localhost 提供名称

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 8 中,如何获取主机名而不在我的环境中对其进行硬编码? 的相关文章

随机推荐

  • 每次运行 Appium、Ruby 测试时如何跳过 Chrome 欢迎屏幕

    我是 Appium 新手 所以我的要求是通过模拟器中的 Appium 运行 Web 驱动程序测试 但是当我每次运行 chrome 时总是显示欢迎屏幕 我必须手动跳过该屏幕才能查看测试结果并拍摄屏幕截图 如何跳过 chrome 欢迎屏幕 下面
  • 删除和添加链接服务器[重复]

    这个问题在这里已经有答案了 可能的重复 SQL Server 是否有针对链接服务器的 IF EXISTS 测试 https stackoverflow com questions 3104186 sql server is there an
  • Java中的回调方法是什么? (这个词的使用似乎很宽松)

    我不明白回调方法是什么 而且我听说人们非常宽松地使用该术语 在Java世界中 什么是回调方法 如果有人能提供一些Java回调方法的示例代码并进行解释 这将对我的Java学习之旅有很大帮助 回调是一段代码 您可以将其作为参数传递给其他代码 以
  • 在基于故事板的应用程序中禁用/启用 UITabBarController 中的选项卡

    我已经使用故事板构建了我的应用程序 所有视图都由选项卡控制器管理 所以在发布时 我目前只在 iPad UI 上工作 它会这样做 BOOL application UIApplication application didFinishLaun
  • Java Web应用程序中防止SQL注入攻击和XSS的方法

    我正在编写一个 java 类 该类将由 servlet 过滤器调用 并检查基于 Struts 的 java web 应用程序的注入攻击尝试和 XSS InjectionAttackChecker 类使用 regex 和 java util
  • macOS tkinter:askopenfilename 的文件类型如何工作

    我的问题 无法切换filetypes in the Filter 见下图 因为它们处于灰色模式 如果设置的话filetypes正如我下面的代码所示 filetypes Python File py Image File bmp All Fi
  • 将内部文件保存在我自己的 Android 内部文件夹中

    我尝试将 txt 文件保存在内部存储的文件夹中 但每次都遇到同样的问题 未找到来源 我以不同的方式编写代码 如下所示 但在所有方面我都有同样的问题 值得一提的是 我什至补充说
  • 需要“红宝石”

    我见过许多带有此行的 Ruby 代码示例 例如 http www sinatrarb com http www sinatrarb com 这个要求的目的是什么 require rubygems require sinatra get hi
  • 在 C++ 中,如何验证文件或文件夹路径?

    目标路径的用户输入字符串可能包含空格或其他无效字符 示例 C users 用户名 目录名 请注意 路径两侧都有空格 并且文件夹名称无效 中间只有一个空格 检查它是否是绝对路径是不够的 因为它只真正处理前导空格 删除尾随空白也是不够的 因为中
  • data 作为 fs.readFile 参数的用途是什么?

    为什么 fs readFile 函数中需要 data 作为参数 const fs require fs fs readFile SampleFile txt function read err data if err throw err c
  • Qt - 组合框处于活动状态时不会触发按键事件

    当我进入按键事件同时按下combobox keypress事件没有被触发 当另一个小部件处于活动状态时 是否有办法仍然获取事件 def keyPressEvent self event if event key 49 49 number 1
  • 测试 const 模态组件是否被调用

    我有一个页脚组件 上面有几个按钮 所有这些按钮都使用Messageconst 这是一个 antd 模式 消息 jsx import Modal from antd const confirm Modal export const Messa
  • 异步任务不会显示进度对话框

    一段时间以来我一直在寻找这个问题的答案 我有一个异步任务 用于下载我的应用程序所需的数据库 虽然正在下载我的应用程序无法执行任何操作 因为它引用的所有数据都在此文件中 我让应用程序等待下载文件 但我正在尝试显示进度对话框 以便用户在等待发生
  • 如何让线程使用下一个尚未使用的对象?

    我可能会尝试使用threading对于我不应该做的事情 如果是这样 请告诉我 我制作了一个较小的代码示例 以便更容易理解我想要的内容 我让用户输入 IP 地址 然后我对他们输入的 IP 地址执行 ping 操作 我想一次 ping x 个
  • azure iothub 设备状态

    getConnectionState 根据设备连接 断开 如果它正在发送消息 我应该看到已连接 如果它不发送 我应该断开连接 但是每次我运行下面的 java 程序时 无论设备是什么 我都会得到断开连接的状态是否发送消息 RegistryMa
  • Spring security - 同一页面根据用户角色提供不同的内容

    我尝试搜索与我的问题相关的任何以前的帖子 但找不到任何内容 我有一个场景 其中页面处理 3 种不同的场景 其中一个不起作用 此页面根据用户是否经过身份验证或匿名返回不同的内容 localhost 8080 myApp muUrl test
  • MongoDB全文搜索可以得到模糊匹配的单词吗?

    我正在编写一个 UI 用于显示 MongoDB 全文搜索查询的结果 直观地突出显示每个结果中匹配的搜索词 这对于完整的单词或短语匹配来说足够有效 但对于部分 模糊匹配则不然 例如 如果我搜索 delete 将得到包含 deletion 的搜
  • RecyclerView 没有显示任何内容

    在我的应用程序中 我从 sqlite 数据库获取数据并使用 RecyclerView 显示它们 这是我的适配器 public class RecyclerViewAdapter extends RecyclerView Adapter
  • 如何在JAVA中从2D数组中获取2D子数组?

    假设我有如下二维数组 int temp 1 2 3 4 5 6 7 8 9 10 11 12 我想要从 X 方向 1 到 2 和 Y 方向 1 到 2 开始子数组 即 6 7 10 11 谁能给我解决上述问题 给你 int temp 1 2
  • 在 Java 8 中,如何获取主机名而不在我的环境中对其进行硬编码?

    我们刚刚在 Amazon Linux 上升级到 Java 8 我们正在使用 Spring 4 3 8 RELEASE 过去 我们可以通过在应用程序上下文文件中设置 bean 来获取机器主机名 如下所示