我想大家都清楚,JAVA在处理SSL的时候需要一种方法来识别默认的truststore,所以这个信息已经以某种方式传递给了JAVA,所以我认为手头的“更新”问题是怎么做以一次做一次然后忘记每次的方式。
我能找到的最好方法是JAVA_TOOL_OPTIONS
在您的操作系统级别设置环境变量,如果设置了此环境变量,则默认情况下将使用您在此环境变量中提供的参数启动 JAVA。
因此,您无需在 -Djavax.net.ssl.trustStore=/Library/Java/Home/lib/security/cacerts
每次启动 JVM 时都进行设置,而是 JAVA_TOOL_OPTIONS
在您的操作系统级别设置环境变量“一次”,其值为 as -Djavax.net.ssl.trustStore=/Library/Java/Home/lib/security/cacerts
,然后您就完成了。
以下是“进一步阅读”#1的摘录:
设置此环境变量后,JNI_CreateJavaVM 函数(在 JNI 调用 API 中)会将环境变量的值预先添加到其 JavaVMInitArgs 参数中提供的选项中。
下面提到了需要注意的唯一警告,摘自“进一步阅读”的#1:
在某些情况下,出于安全原因禁用此选项,例如,在 Solaris OS 上,当有效用户或组 ID 与实际 ID 不同时,该选项将被禁用。
下面是一个需要注意的警告(摘自“进一步阅读”的#1),但我认为因为上下文与 VM 选择参数无关,所以它不相关,只是提一下。
由于在调用 JNI_CreateJavaVM 时会检查此环境变量,因此它不能用于使用通常由启动程序处理的选项来扩充命令行,例如,使用 -client 或 -server 选项进行 VM 选择。
进一步阅读: