JVM 系统属性支持 - AWS SDKs和工具

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

JVM 系统属性支持

JVM 系统属性提供了另一种为在 JVM 上运行的 SDK(例如和)指定配置选项和凭据的方法。 AWS SDK for Java AWS SDK for Kotlin有关 SDK 支持的 JVM 系统属性的列表,请参阅设置参考。

选项的优先顺序
  • 如果您使用其 JVM 系统属性来指定设置,则该设置将覆盖在环境变量中找到或从共享 AWS configcredentials文件中的配置文件加载的任何值。

  • 如果您使用环境变量来指定设置,则该设置将覆盖从共享 AWS configcredentials文件中的配置文件加载的任何值。

如何设置 JVM 系统属性

您可以通过多种方式设置 JVM 系统属性。

在命令行上

使用开关调用命令时,在命令行上设置 JVM 系统属性。java -D除非您在代码中明确覆盖该值,否则以下命令将为所有服务客户端进行 AWS 区域 全局配置。

java -Daws.region=us-east-1 -jar <your_application.jar> <other_arguments>

如果需要设置多个 JVM 系统属性,请多次指定-D交换机。

使用环境变量

如果您无法访问命令行来调用 JVM 来运行应用程序,则可以使用JAVA_TOOL_OPTIONS环境变量来配置命令行选项。这种方法在诸如在 Java 运行时上运行 AWS Lambda 函数或在嵌入式 JVM 中运行代码等情况下非常有用。

除非您在代码中明确覆盖该值,否则以下示例将为所有服务客户端进行 AWS 区域 全局配置。

Linux, macOS, or Unix
$ export JAVA_TOOL_OPTIONS="-Daws.region=us-east-1"

设置环境变量会更改使用的值,直到 Shell 会话结束或直到您将该变量设置为其他值。通过在 shell 的启动脚本中设置变量,可使变量在未来的会话中继续有效。

Windows Command Prompt
C:\> setx JAVA_TOOL_OPTIONS -Daws.region=us-east-1

使用 set 设置环境变量会更改使用的值,直到当前命令提示符会话结束,或者直到您将该变量设置为其他值。使用 setx 设置环境变量会更改当前命令提示符会话和运行该命令后创建的所有命令提示符会话中使用的值。它 影响在运行该命令时已经运行的其他命令 shell。

在运行时

您还可以在运行时使用以下示例所示的System.setProperty方法在代码中设置 JVM 系统属性。

System.setProperty("aws.region", "us-east-1");
重要

在初始化 SDK 服务客户端之前设置任何 JVM 系统属性,否则服务客户端可能会使用其他值。