jvm option中设置相同参数多次不同的值时,最终取的是哪个值

jvm option中设置相同参数多次不同的值时,最终取的是哪个值

对于jvm option中设置相同参数多次不同的值时,最终取的是哪个值。比如:-Dsun.net.inetaddr.ttl=30 -Dsun.net.inetaddr.ttl=10,最终sun.net.inetaddr.ttl的值是什么。

在 JVM 的选项中,如果同一个系统属性被设置了多次,那么最后一次设置的值会被采用,之前的设置会被覆盖。在你给出的例子中,-Dsun.net.inetaddr.ttl=30 -Dsun.net.inetaddr.ttl=10,最终 sun.net.inetaddr.ttl 的值会是 10。

这是因为 JVM 在解析命令行参数时,是按照从左到右的顺序处理的。如果同一个系统属性被设置了多次,那么右边的设置会覆盖左边的设置。

所以,一般来说,如果你想改变一个已经设置的系统属性的值,你可以在命令行参数的最后再设置一次这个系统属性,这样可以确保你的设置会覆盖之前的所有设置。