Java support
You must deploy the PowerBuilder pbjvm.dll file with any
applications or components that use the Java Runtime Environment (JRE),
and there must be a JRE installed on the target computer. The JRE is
required for EJB clients (obsolete), JDBC connections, and saving as PDF
using XSL-FO. You can copy the JRE installed with PowerBuilder to the same
directory as the PowerBuilder runtime files on the target computer, or use
an existing JRE whose location is defined in the user’s system PATH
environment variable.
Locating the Java VM
When a PowerBuilder application requires a Java VM, the PowerBuilder
runtime searches for the jvm.dll file in a subdirectory of the directory
where pbjvm.dll is installed on the user’s computer. The jvm.dll file is
installed in the JREinclient directory of JDK 1.6 and later
installations.
PowerBuilder adds the location of jvm.dll to the beginning of the
path currently being used by the PowerBuilder application. This path is a
copy of the path defined in the user’s PATH system environment variable.
PowerBuilder does not modify the environment variable maintained in the
Windows registry.
To locate the jvm.dll, PowerBuilder first determines where pbjvm.dll
is installed. Suppose pbjvm.dll is installed in C:Program
FilesAppeonCommonPowerBuilderRuntime 19.2.0.2382. Then PowerBuilder
uses this search procedure to add the location of the jvm.dll to the path
currently in use:
-
Search for the directory structure JREinclient in
%AppeonInstallPath%PowerBuilder [version]IDE and, if found, add it
to the beginning of the path. -
If not found, search for a JDK directory structure that contains
JREinclient in %AppeonInstallPath%PowerBuilder [version]IDE and,
if found, add it to the beginning of the path.
If none of these directory structures is found, PowerBuilder uses
the first jvm.dll whose location is defined in the user’s PATH environment
variable. If no jvm.dll is found, the Java VM does not start.
The runtime Java VM
classpath
When PowerBuilder starts a Java VM, the Java VM uses internal path
and class path information to ensure that required Java classes are always
available. At runtime, the Java VM uses a class path constructed by
concatenating these paths:
-
The system JAVA_HOME environment variable.
-
A class path added programmatically when the Java VM is started.
For example, EJB client applications can pass a class path to the
CreateJavaVM method. -
The PowerBuilder runtime static registry class path. This is a
path built into the pbjvm.dll file that corresponds to the path in the
Windows Registry that is used when you are developing an application
in PowerBuilder. It contains classes required at runtime for features
that use a Java VM. -
The system CLASSPATH environment variable.
-
The current directory.
Overriding the runtime static registry
classpath
If necessary, you can override the JVM settings and properties
defined for runtime use in the static registry. PowerBuilder uses the
following algorithm to locate configuration information:
-
When the first request is made for a JVM, PowerBuilder looks for
registry entries for the configuration information and properties to
be passed to the function that creates the JVM. -
If PowerBuilder finds a registry entry for the configuration
information, it uses it instead of the static registry. If it does not
find a registry entry, it uses the static registry. -
If PowerBuilder finds a registry entry for custom properties to
be passed to the JVM, it uses those instead of the static registry. If
it does not find a registry entry, it uses the static registry
entries.
To override the default settings, create a new key named PBRTConfig
in the HKEY_LOCAL_MACHINESoftwareSybasePowerBuilder2019Java key, then
add either or both of the following subkeys: PBJVMconfig and
PBJVMprops.
To duplicate the static registry entries, add the same string values
to these subkeys that you see in the PBIDEConfig key, that is:
|
Subkey |
String value name |
String value data |
|---|---|---|
|
PBJVMconfig |
Count |
1 |
|
|
0 |
-verbose:jni,class |
|
PBJVMprops |
java.compiler |
NONE |
You can override either the configuration or properties entries or
both. If you make incorrect entries, PowerBuilder attempts to recover by
defaulting to the static registry. However, you should be cautious about
making any changes since you can cause incorrect behavior in the JVM if
you do not configure it correctly.