为什么System.setProperty()在运行时不能更改类路径?

我阅读并发现在 类下有一些函数作为getproperties,我们可以在其中检索属性,然后也可以使用setProperties()对其进行设置。

但是我得到的答案是它不会工作。我自己还没有尝试过,但是,我正在接听电话。

只是为了澄清一下,如果这些setProperty()和getProperty()方法无法在运行时更改它们,为什么会存在它们。还是仅特定于classpath属性?

如果有人可以提出他们真正有用的方案,我将不胜感激。

回答:

当然,您可以随时设置所需的任何系统属性。问题是,这会产生影响吗?对于类路径,答案为否。系统类加载器是在启动序列的很早的时候初始化的。它将类路径复制到其自己的数据结构中,并且不会再次读取classpath属性。对其进行更改不会影响系统。

其原因可能有两个。较少的原因是性能。您可能需要构建某种数据结构来快速查找资源,并且每次重新解析类路径都可能效率低下。更重要的原因是安全性。您不希望流氓类更改您自己下的类路径并加载其他类的受侵害版本。

以上是 为什么System.setProperty()在运行时不能更改类路径? 的全部内容, 来源链接: utcz.com/qa/427635.html

回到顶部