首页 > 解决方案 > 为什么我们要在 java 代码中设置系统属性?

问题描述

在 java 中,我们使用 System.SetProperties(Key, Value) 设置系统属性。我有以下与之相关的查询。

  1. 在什么情况下我们在代码中设置系统属性?
  2. 我们如何确定密钥?即我们如何知道我们应该为 Key 提供什么确切的字符串?

标签: javasystem-properties

解决方案


您的问题是如此笼统,以至于任何答案都将是模糊的。如果你能更具体一些,你可能会得到更好的答案。

在什么情况下我们在代码中设置系统属性?

这就像问“我们什么时候应该使用 + 运算符”。毫不奇怪,答案是“仅在需要时”。

系统属性允许您配置部分 Java 运行时(或您的应用程序服务器等)以不同的方式做事。当你发现一个问题并且发现问题的正确解决方案是配置 Java 运行时来修改它的行为时,那就是你需要查找是否存在系统属性的时候。如果有,您需要将其设置为一个可以让您获得所需行为的值。

我们如何确定密钥?即我们如何知道我们应该为 Key 提供什么确切的字符串?

通过文档,真的。假设您遇到了一个问题foo.bar(),即没有按照您的想法去做。或者它会在对您很重要的情况下发生故障。您应该阅读foo.bar(). 它可能会说您可以通过设置系统属性来更改行为。然后将该系统属性设置为文档中提到的值。

注意:某些系统属性根本无法设置。main(string[])或者更确切地说,您可以设置它们,但在程序启动(已被调用)后更改它们无效。


我有这个小片段,我用它来查看所有当前设置的系统属性及其值。有助于探索和获得一些想法:

            final String SEPARATOR = "=";
            Properties properties = System.getProperties();
            for (Object property : properties.keySet()) {
                String prop = (String) property;
                System.out.println(prop + SEPARATOR + properties.getProperty(prop));
            }

推荐阅读