java - 为什么我们要在 java 代码中设置系统属性?
问题描述
在 java 中,我们使用 System.SetProperties(Key, Value) 设置系统属性。我有以下与之相关的查询。
- 在什么情况下我们在代码中设置系统属性?
- 我们如何确定密钥?即我们如何知道我们应该为 Key 提供什么确切的字符串?
解决方案
您的问题是如此笼统,以至于任何答案都将是模糊的。如果你能更具体一些,你可能会得到更好的答案。
在什么情况下我们在代码中设置系统属性?
这就像问“我们什么时候应该使用 + 运算符”。毫不奇怪,答案是“仅在需要时”。
系统属性允许您配置部分 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));
}
推荐阅读
- javascript - 如何使用 mapbox-gl-Draw 创建 8 个点的矩形?
- python - python中的算法Misra和Gries实现
- java - 编译问题 - 为什么 Int 对我的年龄变量不起作用?
- c++ - 为什么不将 std::double_t 流式传输到 std::cout 给我小数位?
- tensorflow.js - 如何将 Niftynet 模型转换为 .pb 格式
- android - 动作模式下工具栏不会消失
- lit-html - 这些错误在 lit-html 中吗?
- django - docker-compose 相同的配置用于开发和生产,但仅在开发中启用主机和容器之间的代码共享
- javascript - 如何从 Typescript 工厂函数中导出类?
- matrix - 从矩阵中选择一系列扑克手