Java 运行时属性

EGL 生成的 Java™ 程序使用一组运行时属性,这些属性提供诸如如何访问由程序使用的数据库和文件之类的信息。

在 J2EE 环境中

对于将在 J2EE 环境中运行的生成的 Java 程序,下列情况是有可能的:
  • EGL 可以将运行时属性直接生成到 J2EE 部署描述符中。在这种情况下,EGL 将覆盖已存在的属性并追加不存在的属性。在运行时,程序将访问 J2EE 部署描述符。
  • 另外,EGL 可以将运行时属性生成到 J2EE 环境文件中。可以定制该文件中的属性,然后将它们复制到 J2EE 部署描述符中。
  • 完全可以不生成运行时属性,在这种情况下,您必须手工编写任何需要的属性。

在 J2EE 模块中,因为模块中的所有代码都共享同一部署描述符,所以每个程序都具有相同的运行时属性。

在 WebSphere® Application Server 中,属性在与 Web 项目相关联的 web.xml 文件中被指定为 env-entry 标记,如以下示例中所示:
  <env-entry>
		  <env-entry-name>vgj.nls.code</env-entry-name>
    <env-entry-value>ENU</env-entry-value>
    <env-entry-type>java.lang.String</env-entry-type>
  </env-entry>

  <env-entry>
    <env-entry-name>vgj.nls.number.decimal</env-entry-name>
    <env-entry-value>.</env-entry-value>
    <env-entry-type>java.lang.String</env-entry-type>
  </env-entry>

在非 J2EE Java 环境中

对于在 J2EE 环境外部运行的生成的 Java 程序,可以将运行时属性生成到程序属性文件中,也可以手工编写该文件。(程序属性文件提供在部署描述符中可用的信息类型,但是属性的格式不同。)

在非 J2EE Java 环境中,可以在其中任何属性文件中指定属性,它们是按以下顺序进行搜索的:
  • user.properties
  • 具有以下名称的文件:
      programName.properties
    programName
    运行单元中的第一个程序
  • rununit.properties

在指定特定于用户的属性时适合使用 user.properties。EGL 不生成此文件的内容。

当运行单元的第一个程序不访问文件或数据库,而是调用执行那些操作的程序时,就特别适合于使用 rununit.properties
  • 当生成调用程序时,可以生成具有该程序的名称的属性文件,内容可以不包含与数据库或文件相关的属性
  • 当生成被调用程序时,可以生成 rununit.properties,内容将可供这两个程序使用

这些文件都不是必需的,简单的程序不需要它们中的任何一个。

在部署时,下列规则适用:
  • 用户属性文件(user.properties,如果有的话)在用户主目录中,这是由 Java 系统属性 user.home 确定的。
  • 程序属性文件(如果存在的话)的位置取决于该程序是否在包中。下面的示例很好地说明了这些规则:
    • 如果程序 P 在包 x.y.z 中并且部署至 MyProject/JavaSource,则程序属性文件必须在 MyProject/JavaSource/x/y/z 中
    • 如果程序 P 不在包中并且部署至 myProject/JavaSource,则程序属性文件(如全局属性文件)必须在 MyProject/JavaSource 中

    在任何一种情况下,MyProject/JavaSource 都必须在该类路径中。

  • 全局属性文件(rununit.properties,如果存在的话)必须与程序在一起,位于在类路径中指定的目录中。

如果生成 Java 项目的输出,EGL 会将属性文件(并非 user.properties)放在适当的文件夹中。

如果要生成 Java 代码以便在与使用较早版本的 EGL 或 VisualAge® Generator 生成 Java 代码的相同的运行单元中使用,用于部署属性文件的规则取决于运行单元中的第一个程序是否是使用 EGL 6.0 或更新版本生成的(在这种情况下,此处描述的规则适用),或者是使用较早版本的 EGL 或 VisualAge Generator 生成的(在这种情况下,属性文件可能在类路径中的任何目录中,并且全局文件被称为 vgj.properties)。

最后,如果第一个程序是使用较早版本的软件生成的,可指定另一个属性文件,该文件在运行单元中全局使用以代替所有非全局属性文件。有关详细信息,请参阅 Java 运行时属性(详细信息)中的属性 vgj.properties.file 的描述。

构建描述符和程序属性

选项作为构建描述符选项值被提交至 EGL:
  • 要将属性生成到 J2EE 部署描述符中,请将 J2EE 设置为 YES,将 genProperties 设置为 PROGRAM 或 GLOBAL,并生成到 J2EE 项目中。
  • 要将属性生成到 J2EE 环境文件中,请将 J2EE 设置为 YES,将 genProperties 设置为 PROGRAM 或 GLOBAL,并执行下列其中一项操作:
    • 生成到目录中(在这种情况下,使用构建描述符选项 genDirectory,而不是使用 genProject);或者
    • 生成到非 J2EE 项目中。
  • 要生成与正在生成的程序同名的程序属性文件,请将 J2EE 设置为 NO,将 genProperties 设置为 PROGRAM,并生成到除 J2EE 项目以外的项目中。
  • 要生成程序属性文件 rununit.properties,将 J2EE 设置为 NO;将 genProperties 设置为 GLOBAL;并将其生成到 J2EE 项目之外的项目中。
  • 要避免生成属性,将 genProperties 设置为 NO。

有关其它信息

有关将属性生成到部署描述符中或 J2EE 环境文件中的详细信息,请参阅设置部署描述符值

有关运行时属性的含义的详细信息,请参阅 Java 运行时属性(详细信息)

有关访问 EGL 代码中的运行时属性的详细信息,请参阅 sysLib.getProperty

使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.