我有一个在alpine容器中运行的java应用程序,我想找到一个可靠的方法来确定networkaddress.cache.ttl
的值是什么,我尝试在应用程序的代码中使用这个:java.security.Security.getProperty("networkaddress.cache.ttl");
,但它总是返回null,即使我在JAVA_OPTS参数中使用-Dnetworkaddress.cache.ttl=30
。所以我显然做错了什么,但我不知道是什么。根据这个networkaddress.cache.ttl null in openjdk,我甚至不需要在JAVA_OPTS中添加参数,因为默认值是30。查看容器内部的/usr/local/openjdk-8/jre/lib/security/java.security
,我可以看到#networkaddress.cache.ttl=-1
,但它被注解掉了。所以我不知道默认值是什么,那么我怎么才能可靠地检查networkaddress.cache.ttl
的值是什么呢?
2条答案
按热度按时间g6ll5ycj1#
由于我不知道的原因,
-Dnetworkaddress.cache.ttl=30
无法设置任何内容。我设法通过将其添加到我的Dockerfile来设置它here描述了另一种方法,其思想是使用另一个文件覆盖security属性,这两种方法对我来说都很好用。
mzmfm0qo2#
因为这两个属性是安全策略的一部分,所以它们不是由-D选项或System.setProperty()API设置的,而是作为安全属性设置的。
note from AWS Java SDK使用SecurityProperty而不是SystemProperty,如下所示:
这样你就可以