managesdk 命令

managesdk 命令提供产品所使用的软件开发套件的名称。

使用 managesdk 命令可执行以下操作:
  • 列示适用于产品安装的软件开发包 (SDK) 名称。
  • 列示指定概要文件根据配置所要使用的 SDK 名称。
  • 对于产品安装中的每个概要文件,列示该概要文件根据配置所要使用的 SDK 名称。
  • 使概要文件能够使用指定的 SDK 名称。
  • 使安装中的所有概要文件都能够使用指定的 SDK 名称。
  • 获取用来配置新概要文件的 SDK 名称。
  • 更改概要文件使用的缺省 SDK 名称。
  • 获取从产品 bin 目录中调用的脚本所使用的 SDK 名称。
  • 更改产品 bin 目录中的脚本在缺省情况下使用的 SDK 名称。 如果未指定现有概要文件名称,并且缺省概要文件名称不适用,那么将使用此 SDK 名称。

命令文件位于 app_server_root/bin 目录和 app_client_root/bin 目录中。

[IBM i]注意:
  • [AIX Solaris HP-UX Linux Windows][IBM i]请参阅本主题中的 使用方案 部分,以获取用于列出概要文件及其使用的 SDK 的 managesdk 命令的示例序列,列出可用的 SDK ,将缺省 SDK 更改为不同的 SDK 版本,并使概要文件能够使用其他 SDK 版本。
  • managesdk 命令提供用于代替 enableJvm 命令的功能。 不推荐使用 enableJvm 命令。 请使用 managesdk 命令来代替 enableJvm 命令。
  • 如果在联合单元中使用 managesdk 命令,并在节点上启用 SDK ,那么除非在 Deployment Manager 运行期间节点代理程序已重新启动,否则该命令不会找到该 SDK。
  • [z/OS]如果将新 SDK 安装到 WebSphere® Application Server for z/OS的现有副本上,那么必须先重新启动每个应用程序服务器节点或管理节点,然后才能在该节点上使用 SDK。 重新启动节点后,后安装程序会从配置文件系统到包含新 SDK 的产品文件系统创建所需符号链接。
  • 如果 root 用户对非 root 用户概要文件运行 managesdk 命令,那么非 root 用户在尝试启动服务器或运行 managesdk 命令时可能会迂到 Permission denied 错误。 要解决此错误,请将概要文件所有权重新分配给非 root 用户。 有关更多信息,请参阅 将概要文件所有权分配给非 root 用户
注: 安装后, WebSphere Application Server 将查看已安装的 Java™ SDK ,并选择已安装的最高级别 Java SDK ,并将其用作新创建的概要文件的命令的缺省值。 具有此初始设置之后,可以使用 managesdk 命令来切换到另一个 SDK(如果有一个可用的话)。

语法

请根据以下命令语法使用 managesdk 命令:

managesdk -task [-parameter] [value]

命令行工具将验证所请求的任务是否包含必需的参数和值。 参数不区分大小写。 但是,值区分大小写。 您必须以正确的大小写输入值,这是因为,命令行工具不会验证参数值的大小写。 如果输入的参数值不正确,那么可能导致错误的结果。

参数

以下 -task 选项对 managesdk 命令可用:

-help
显示有关每个 managesdk 任务的参数或值的详细信息。 以下示例将 managesdk 命令与 help 参数配合使用:
[Linux][AIX][z/OS][HP-UX][Solaris]
app_server_root/bin/managesdk.sh -help
[IBM i]
app_server_root/bin/managesdk -help
[Windows]
app_server_root\bin\managesdk.bat -help

help 选项的输出描述了必需参数和可选参数。

-listAvailable [-verbose]
显示所有适用于产品安装的 SDK 名称的列表。 如果还指定了 -verbose 选项,那么还将显示每个 SDK 名称的属性列表。 以下示例将 -listAvailable -verbose 参数与 managesdk 命令配合使用:
[Linux][AIX][z/OS][HP-UX][Solaris]
app_server_root/bin/managesdk.sh -listAvailable -verbose
[IBM i]
app_server_root/bin/managesdk -listAvailable -verbose
[Windows]
app_server_root\bin\managesdk.bat -listAvailable -verbose

输出是产品安装可以使用的所有 SDK 名称的列表以及每个 SDK 名称的相关属性列表。

-listEnabledProfile [-profileName profile_name] [-verbose]
显示指定的概要文件及其节点和服务器根据配置所要使用的所有 SDK 名称的列表。 如果还指定了 -verbose 选项,那么还将显示每个 SDK 名称的属性列表。 以下示例将 -listEnabledProfile -profileName-verbose 参数与 managesdk 命令配合使用:
[Linux][AIX][z/OS][HP-UX][Solaris]
app_server_root/bin/managesdk.sh -listEnabledProfile -profileName AppSrv02 -verbose
[IBM i]
app_server_root/bin/managesdk -listEnabledProfile -profileName AppSrv02 -verbose
[Windows]
app_server_root\bin\managesdk.bat -listEnabledProfile -profileName AppSrv02 -verbose

输出是指定的概要文件可以使用的所有 SDK 名称的列表以及每个 SDK 名称的相关属性列表。

-listEnabledProfileAll [-verbose]
显示安装中的所有概要文件以及每个概要文件及其节点和服务器根据配置所要使用的 SDK 名称的列表。 如果还指定了 -verbose 选项,那么还将显示每个 SDK 名称的属性列表。 以下示例将 -listEnabledProfileAll-verbose 参数与 managesdk 命令配合使用:
[Linux][AIX][z/OS][HP-UX][Solaris]
app_server_root/bin/managesdk.sh -listEnabledProfileAll -verbose
[IBM i]
app_server_root/bin/managesdk -listEnabledProfileAll -verbose
[Windows]
app_server_root\bin\managesdk.bat -listEnabledProfileAll -verbose

输出是产品安装中所有概要文件和每个概要文件可以使用的所有 SDK 名称的列表,以及每个 SDK 名称的相关属性列表。

-enableProfile [-profileName profile_name] [-sdkname sdkName] [-enableServers] [-user user_name] [-password password_value]
使概要文件能够使用指定的 SDK 名称。 -profileName 参数指定概要文件,而 -sdkname 参数指定 SDK 名称。 此命令使概要文件以及概要文件的节点级缺省 SDK 能够使用指定的 SDK 名称。 WebSphere Application Server 概要文件具有概要文件范围 (节点) JDK 设置。 如果未设置特定的服务器级别 JDK ,那么 WebSphere Application Server将继承在概要文件 (节点) 级别配置的 JDK。

如果从特定概要文件的客户机脚本和工具设置了特定服务器级 JDK ,那么可以将此特定服务器级 JDK 设置更改为概要文件 (节点) 级别的服务器级 JDK 设置。 要进行此更改,请将 managesdk 命令与-enableProfile 和-enableServers 参数配合使用。 使用-enableServers 参数可清除客户机概要文件的所有 SDK 配置设置,并允许客户机服务器继承在概要文件 (节点) 级别配置的 JDK。 如果未在 managesdk 命令中使用-enableServers 选项,那么不会更改服务器级别 SDK 设置。

注意: 在系统中,存在节点范围的 JDK 和服务器范围的 JDK。 如果未配置服务器范围的 JDK ,那么服务器将继承节点范围的 JDK。 如果服务器定义了服务器作用域 JDK ,那么服务器将使用该服务器作用域 JDK 而不是节点作用域 JDK。
以下条件适用于已运行 managesdk 命令的情况:
  • 如果概要文件是 Deployment Manager 的联合节点,那么当 managesdk 命令尝试更新此概要文件时,Deployment Manager 必须正在运行。
  • 如果概要文件是独立应用程序服务器、独立安全代理服务器、作业管理器、管理代理程序或 Deployment Manager,那么当 managesdk 命令尝试更新该概要文件时,概要文件服务器(节点)不得处于运行状态。 请先停止该服务器,然后再运行 managesdk 命令。
  • 对节点启用 SDK 时,请从节点所属的产品安装的 /bin 目录或包含要更新的节点的概要文件的 /bin 目录运行 managesdk 命令。
  • 根据以下首选顺序使用受支持的连接器协议时,与 Deployment Manager 的连接必须存在:
    1. SOAP
    2. 进程间通信 (IPC)
    3. 远程方法调用 (Remote Method Invocation, RMI)
    如果启用了 SOAP 协议,那么 managesdk 命令将使用 SOAP 协议。 如果未启用 SOAP 协议,但启用了 IPC 协议,那么该命令将使用 IPC 协议。 如果 SOAP 协议和 IPC 协议都未启用,那么该命令将使用 RMI 协议。
  • 对于每个包含已启用安全性的单元中的联合节点或 Deployment Manager 节点的概要文件,您必须为 managesdk 命令提供管理用户名和密码。 如果未指定 -user-password 参数,那么 managesdk 命令可能会失败或停止处理。 关于通过脚本编制配置安全性的主题提供了有关如何保存用户名值和密码值的特定于连接器协议的指示信息。
  • 当您为 Deployment Manager 启用 SDK 时,仅启用 Deployment Manager 服务器。 不会启用 Deployment Manager 的任何管理节点来使用特定 SDK。

以下示例将 -enableProfile-profileName-sdkname-enableServersmanagesdk 命令配合使用:

[Linux][AIX][HP-UX][Solaris]
app_server_root/bin/managesdk.sh -enableProfile -profileName AppSrv02 -sdkname 8.0_64 -enableServers
[IBM i]
app_server_root/bin/managesdk -enableProfile -profileName AppSrv02 -sdkname 8.0_64 -enableServers
[Windows]
app_server_root\bin\managesdk.bat -enableProfile -profileName AppSrv02 -sdkname 8.0_64 -enableServers
[z/OS]
app_server_root/bin/managesdk.sh -enableProfile -profileName AppSrv02 -sdkname 8.0_64 -enableServers

输出是一条消息,该消息指示更新指定概要文件成功从而使该概要文件现在能够使用指定的 SDK,或者遇到了问题从而导致无法成功地更新该概要文件。

-enableProfileAll [-sdkname sdkName] [-enableServers] [-user user_name] [-password password_value]
使安装中的所有概要文件都能使用指定的 SDK 名称。 -sdkname 参数指定 SDK 名称。 此命令使所有概要文件以及每个概要文件的节点级缺省 SDK 能够使用指定的 SDK 名称。 WebSphere Application Server 概要文件具有概要文件范围 (节点) JDK 设置。 如果未设置特定的服务器级别 JDK ,那么 WebSphere Application Server将继承在概要文件 (节点) 级别配置的 JDK。

如果从特定概要文件的客户机脚本和工具设置了特定服务器级 JDK ,那么可以将此特定服务器级 JDK 设置更改为概要文件 (节点) 级别的服务器级 JDK 设置。 要进行此更改,请将 managesdk 命令与-enableProfile 和-enableServers 参数配合使用。 使用-enableServers 参数可清除客户机概要文件的所有 SDK 配置设置,并允许客户机服务器继承在概要文件 (节点) 级别配置的 JDK。 如果未在 managesdk 命令中使用-enableServers 选项,那么不会更改服务器级别 SDK 设置。

注意: 在系统中,存在节点范围的 JDK 和服务器范围的 JDK。 如果未配置服务器范围的 JDK ,那么服务器将继承节点范围的 JDK。 如果服务器定义了服务器作用域 JDK ,那么服务器将使用该服务器作用域 JDK 而不是节点作用域 JDK。
以下条件适用于已运行 managesdk 命令的情况:
  • 如果概要文件是 Deployment Manager 的联合节点,那么当 managesdk 命令尝试更新此概要文件时,Deployment Manager 必须正在运行。
  • 如果概要文件是独立应用程序服务器、独立安全代理服务器、作业管理器、管理代理程序或 Deployment Manager,那么当 managesdk 命令尝试更新该概要文件时,概要文件服务器(节点)不得处于运行状态。 请先停止该服务器,然后再运行 managesdk 命令。
  • 对节点启用 SDK 时,请从节点所属的产品安装的 /bin 目录或包含要更新的节点的概要文件的 /bin 目录运行 managesdk 命令。
  • 根据以下首选顺序使用受支持的连接器协议时,与 Deployment Manager 的连接必须存在:
    1. SOAP
    2. 进程间通信 (IPC)
    3. 远程方法调用 (Remote Method Invocation, RMI)
    如果启用了 SOAP 协议,那么 managesdk 命令将使用 SOAP 协议。 如果未启用 SOAP 协议,但启用了 IPC 协议,那么该命令将使用 IPC 协议。 如果 SOAP 协议和 IPC 协议都未启用,那么该命令将使用 RMI 协议。
  • 对于每个包含已启用安全性的单元中的联合节点或 Deployment Manager 节点的概要文件,您必须为 managesdk 命令提供管理用户名和密码。 如果未指定 -user 和 -password 参数,那么 managesdk 命令可能会失败或停止处理。 关于通过脚本编制配置安全性的主题提供了有关如何保存用户名值和密码值的特定于连接器协议的指示信息。
    避免麻烦: 除非针对已启用安全性的任何联合节点或 Deployment Manager 的单元的部署管理器的 SOAP , IPC 和 RMI 连接禁用自动提示,否则请勿使用 -enableProfileAll 选项。 自动提示将导致 managesdk 命令失败或停止处理。
  • 当您为 Deployment Manager 启用 SDK 时,仅启用 Deployment Manager 服务器。 不会启用 Deployment Manager 的任何管理节点来使用特定 SDK。

以下示例将 -enableProfileAll-sdkname-enableServersmanagesdk 命令配合使用:

[Linux][AIX][HP-UX][Solaris]
app_server_root/bin/managesdk.sh -enableProfileAll -sdkname 8.0_64 -enableServers
[IBM i]
app_server_root/bin/managesdk -enableProfileAll -sdkname 8.0_64 -enableServers
[Windows]
app_server_root\bin\managesdk.bat -enableProfileAll -sdkname 8.0_64 -enableServers
[z/OS]
app_server_root/bin/managesdk.sh -enableProfileAll -sdkname 8.0_64 -enableServers

输出是每个概要文件的一条相应消息,该消息指示更新该概要文件成功从而使该概要文件现在能够使用指定的 SDK,或者遇到了问题从而导致无法成功地更新该概要文件。

-getNewProfileDefault [-verbose]
显示针对使用 manageprofiles 命令创建的所有概要文件配置的 SDK 名称。 如果还指定了 -verbose 选项,那么还将显示单个 SDK 名称的属性信息。

以下示例将 -getNewProfileDefault -verbose 参数与 managesdk 命令配合使用:

[Linux][AIX][z/OS][HP-UX][Solaris]
app_server_root/bin/managesdk.sh -getNewProfileDefault -verbose
[IBM i]
app_server_root/bin/managesdk -getNewProfileDefault -verbose
[Windows]
app_server_root\bin\managesdk.bat -getNewProfileDefault -verbose

此命令运行完成后,将显示新的概要文件缺省 SDK 名称。

-setNewProfileDefault [-sdkname sdkName]
更改针对使用 manageprofiles 命令创建的所有概要文件配置的 SDK 名称。 -sdkname 参数指定要使用的缺省 SDK 名称。 sdkName 值必须是对产品安装启用的 SDK 名称。

以下示例将 -setNewProfileDefault -sdkname 参数与 managesdk 命令配合使用:

[Linux][AIX][HP-UX][Solaris]
app_server_root/bin/managesdk.sh -setNewProfileDefault -sdkname 8.0_64
[IBM i]
app_server_root/bin/managesdk -setNewProfileDefault -sdkname 8.0_64
[Windows]
app_server_root\bin\managesdk.bat -setNewProfileDefault -sdkname 8.0_64
[z/OS]
app_server_root/bin/managesdk.sh -setNewProfileDefault -sdkname 8.0_64

此命令运行完成后,将显示新的概要文件缺省 SDK 名称。

-getCommandDefault [-verbose]
显示命令未指定概要文件并且命令没有缺省概要文件时 app_server_root/binapp_client_root/binplugins_root/bin 目录中的脚本命令所能够使用的 SDK 名称。 如果还指定了 -verbose 选项,那么还将显示单个 SDK 名称的属性信息。

以下示例将 -getCommandDefault -verbose 参数与 managesdk 命令配合使用:

[Linux][AIX][z/OS][HP-UX][Solaris]
app_server_root/bin/managesdk.sh -getCommandDefault -verbose
[IBM i]
app_server_root/bin/managesdk -getCommandDefault -verbose
[Windows]
app_server_root\bin\managesdk.bat -getCommandDefault -verbose
-setCommandDefault [-sdkname sdkName]
更改命令未指定概要文件并且命令没有缺省概要文件时 app_server_root/binapp_client_root/binplugins_root/bin 目录中的脚本命令所能够使用的 SDK 名称。 -sdkname 参数指定将用于命令的 SDK 名称。 sdkName 值必须是对产品安装启用的 SDK 名称。

以下示例将 -getCommandDefault -sdkname 参数与 managesdk 命令配合使用:

[Linux][AIX][HP-UX][Solaris]
app_server_root/bin/managesdk.sh -setCommandDefault -sdkname 8.0_64
[IBM i]
app_server_root/bin/managesdk -setCommandDefault -sdkname 8.0_64
[Windows]
app_server_root\bin\managesdk.bat -setCommandDefault -sdkname 8.0_64
[z/OS]
app_server_root/bin/managesdk.sh -setCommandDefault -sdkname 8.0_64

以下特殊参数选项可以与 managesdk 命令的任务参数配合使用:

最佳实践: 对概要文件中的所有工具和服务器使用相同的 JVM 可确保一致的处理。
-debug
将此选项与任意 -task 参数配合使用可以在命令输出中提供额外的调试信息。
-quiet
将此选项与任意 -task 参数配合使用可以消除命令输出中的大部分消息。
-sdkname
将此选项与 -set task 参数配合使用可以指定对产品安装启用的 SDK 名称;例如:
  • [Linux][AIX][Windows][HP-UX][IBM i][Solaris]-sdkname 8.0_64
-verbose
将此选项与任意 -list-get 任务参数配合使用可以提供额外的信息,例如命令输出中的 SDK 属性。
[AIX Solaris HP-UX Linux Windows][IBM i]

使用方案

下列示例演示运行 managesdk 命令时的正确语法:

managesdk -listAvailable -verbose
managesdk -listEnabledProfile -profileName AppSrv02 -verbose
managesdk -listEnabledProfileAll -verbose
managesdk -enableProfile -profileName AppSrv02 -sdkname 8.0_64 -enableServers
managesdk -enableProfileAll -sdkname 8.0_64 -enableServers
managesdk -getNewProfileDefault -verbose
managesdk -setNewProfileDefault -sdkname 8.0_64
managesdk -getCommandDefault -verbose
managesdk -setCommandDefault -sdkname 8.0_64

以下示例演示了列示可用 SDK、将缺省 SDK 更改为 V8.0 SDK 以及使概要文件(如果已存在)能够使用 V8.0 SDK 时要使用的命令序列。

  1. (可选)查看产品安装的可用 SDK 名称列表:
    managesdk -listAvailable
  2. 将命令缺省值设置为 V8.0 SDK:
    managesdk -setCommandDefault -sdkname 8.0_64
  3. 将新概要文件缺省值设置为 V8.0 SDK:
    managesdk -setNewProfileDefault -sdkname 8.0_64
  4. 如果概要文件已存在,那么使其能够使用 V8.0 SDK:
    managesdk -enableProfileAll -sdkname 8.0_64 -enableServers

    要更改 Network Deployment 安装中的联合概要文件,Deployment Manager 必须正在运行。 managesdk 命令更新主配置存储库。 该命令运行后,必须先执行同步操作,然后新 SDK 才能用于联合概要文件。