Appendix A. Additional information
This document can help you install the MIDP 2.0 configuration that you need to run a J9 VM executable on your Windows Mobile 2003 device.
Note: This document assumes a certain level of knowledge about working with Windows Mobile 2003 devices. For example, if you need further information on how to install files on your device, please refer to the Windows Mobile 2003 documentation.
What is a J9 runtime?
The J9 VM, the core of WebSphere Everyplace Micro Environment (WEME), the IBM(TM) implementation of the Java(TM) Virtual Machine Specification, Version 1.3. A Java virtual machine executes machine instructions, known as bytecodes, typically compiled from Java language source code. For more on the Java Virtual Machine Specification, refer to http://java.sun.com/docs/books/vmspec/.
The J9 VM and Java Class Libraries (JCL) comprise the J9 runtime environment. The J9 runtime environment is Java 2 Platform, Micro Edition (J2ME) compliant and contains Connected Limited Device Configuration (CLDC) and Connected Device Configuration (CDC) based technologies. In addition, the WebSphere Everyplace Custom Environment (WECE) is a combination of the J9 VM and IBM custom libraries.
The WEME product is supported on a variety of:
WebSphere Everyplace Micro Environment is a certified Java Powered product, developed under an agreement between IBM and Sun Microsystems. Deployment of applications or devices with Workplace Client Technology requires an appropriate deployment license from IBM or one of IBM's partners.
Which J9 class libraries are available for a Windows Mobile 2003 devices?
The following J9 class library is available for your device:
What is an installer package?
The installer package contains the components of the IBM Workplace Client Technology, Micro Edition (WCTME) MIDP 2.0 runtime for the Windows Mobile 2003 device. Executing this file will start the InstallShield application which will guide you through the install.
The following installer package is available for your device:
Type of Package
|
File name
|
Description
|
Space required to install
|
---|---|---|---|
Runtime Package
|
weme-wm2003-arm-ppro10-5.7.0.exe for a Windows environment weme-wm2003-arm-ppro10-5.7.0.bin for a Linux environment Note: Although you can use this bin file for any Linux environment, it is only
supported on Red Hat 8.0
|
J2ME Mobile Information Device Next Generation(JSR-118) This runtime package includes the:
Note: An example MIDlet application, "Golf Score Midlet," is included and installed
when you install this package.
|
3MB
|
The CAB file contains the executable and the proper DLL files that are
necessary for the IBM(TM) Workplace Client Technology, Micro Environment
(WCTME) MIDP 2.0 runtime package.
Type of Package
|
File name
|
Description
|
---|---|---|
CAB File
|
weme-midp20-wm2003-arm_22.CAB
|
Files that are included in the CAB file can be found in their default location on the device: Found in \Program Files\J9\MIDP20\bin\
Found in \Program Files\J9\MIDP20\lib\
Found in \Program Files\J9\MIDP20\lib\jclMidp20\
Found in \Program Files\J9\MIDP20\examples\jclMidp20\
|
Follow these steps to install a runtime environment on your development computer:
Note: You must be logged in as "root" on a Linux system.
Result: The installer launches. The first window displays information about the installer package.
Result: The second installer window displays the license agreement.
Result: The third installer window prompts for the location to install the runtime files.
Result: The installer displays a verification prompt.
Result: A "successful installation" dialog box displays.
If the CAB file was not automatically synchronized with your device, follow these steps to install the runtime environment:
Note: These instructions are for Windows only. Contact your mobile device manufacturer for Linux instructions.
Follow these steps to remove a package installed on your development computer:
Operating System
|
Follow these steps to run the uninstaller
|
---|---|
Windows
|
|
Linux
|
|
Result: The second uninstaller window displays summary information.
Result: The third uninstaller window displays more summary information.
Note: The uninstaller removes the files but leaves the directories in place.
Follow these steps on your mobile device to uninstall the runtime:
If you installed the CAB file on the device, an example was also installed for you. The example code can be found in an examples directory in the MIDP20 installation directory. A shortcut was also placed in the Start Menu for the device.
Follow these steps to execute the example:
Result: The Golf Score Midlet will execute.
There is also a shortcut installed to run the MIDlet emulator. Follow these steps to execute the emulator:
Result: The MIDlet emulator will execute.
The following table contains common J9 v2.2 command line
options.
J9 - VM for the Java(TM) platform, Version 2.2 (c) Copyright IBM Corp. 1991, 2004 All Rights Reserved Target: {Encoded Build Number} (Windows XP 5.1 build 2600 Service Pack 1 x86) IBM is a registered trademark of IBM Corp. Java and all Java-based marks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. Usage: j9 [options] classname [args...] Usage: j9 [options] -jxe:<jxeFile> [args...] [options] -classpath <path> -cp <path> set classpath to <path>. -jxe:<jxeFile> run the named jxe file. -D<prop>=<val> set the value of a system property. -debug:<options> enable debug, JDWP standard <options>. -jcl:<config> specify which JCL DLL to use (e.g. cdc, cldc, ...). -verbose [:class,gc,stack,sizes] enable verbose output(default=class). -verify enable class file verification. -X print help on non-standard options. |
Refer to the following table for a more detailed description of each of
these options:
Syntax
|
Description
|
---|---|
-? or -help
|
This command option displays help
|
-classpath
|
This command option sets the class path for this invocation of J9. The final value of -classpath is determined by:
If the class path includes:
Example: (on windows) -classpath c:\ive\lib\classes.zip; c:\myclasses;c:\myjars\foo.jar Caution:
|
-cp <path>
|
Set classpath to <path> This is equivalent to -classpath.
|
-jxe:<jxeFile>
|
This command option reads the specified JXE file, looking for the classes in this file. All classes found in the JXE are placed at the end of the "boot path." Note: When using the -jxe option, do not specify the startup class. Example: -jxe:hello.jxe
Note: The -jxe option must be the last option on the command line.
Caution:
|
-Dprop=<val>
|
This command option sets the value of a system property. For example, -Dmy.property=some.value sets the value of my.property to some.value. -Dprop sets the value to null. You can use multiple instances of this option by repeating the option statement separated with a space. Example: j9 -Dprop1=val1 -Dprop2=val2 -Dprop3=val3 Note: Spacing is important in this option's syntax. There is never a space between the initial -D, its property argument, the equals sign, or the value argument. Example: -Dname="John Smith" |
-debug:<options>
|
This command enables debug, Java Debug Wire Protocol (JDWP)
standard <options>
|
-jcl:<config>
|
This command option specifies which JCL DLL to use (which JNI natives are used by the class library Java code.) If you use the -jcl:<config> without indicating a -Xbootclasspath: <path>, then the value for the -Xbootclasspath: <path> is assumed (%JAVAHOME%/lib/jclLibraryName/classes.zip). However, if the class libraries are stored in a non-default location, then you must include the -Xbootclasspath: <path> in order to direct the VM to the classes.zip file. Note: If the -Xbootclasspath and the -jcl VM options are mismatched, the VM will generate an "Incompatible class library" error.
The possible library arguments are:
Note: Not all these options are available for all platforms.
|
-verbose[:class, gc, stack, sizes]
|
This command option turns one of the following:
|
-verify
|
This command option enables bytecode verification. The
-verify option is on by default. To disable bytecode
verification specify -noverify.
|
-X
|
This command option prints help on non-standard options.
|
The following options are non-standard and subject to change without
notice:
-Xbootclasspath:<path> set bootstrap classpath to <path> -Xbootclasspath/p:<path> prepend <path> to bootstrap classpath -Xbootclasspath/a:<path> append <path> to bootstrap classpath -Xrun<dll>[:options] Load helper libraries, such as those used with JVMPI -Xint run interpreted only -Xnoaot do not run precompiled code -Xfuture enable strictest checks, anticipating future default Arguments to the following options are expressed in bytes. Values suffixed with "k" (kilo) or "m" (mega) will be factored accordingly. -Xmca<x> set RAM class segment increment to <x> -Xmco<x> set ROM class segment increment to <x> -Xmn<x> set initial/maximum new space size to <x> -Xmns<x> set initial new space size to <x> -Xmnx<x> set maximum new space size to <x> -Xmo<x> set initial/maximum old space size to <x> -Xmos<x> set initial old space size to <x> -Xmox<x> set maximum old space size to <x> -Xmoi<x> set old space increment to <x> -Xms<x> set initial memory size to <x> -Xmx<x> set memory maximum to <x> -Xmr<x> set remembered set size to <x> -Xmrx<x> set maximum size of remembered set to <x> -Xmso<x> set OS thread stack size to <x> -Xiss<x> set initial java thread stack size to <x> -Xss<x> set maximum java thread stack size to <x> -Xmine<x> set minimum size for heap expansion to <x> -Xmaxe<x> set maximum size for heap expansion to <x> Arguments to the following options are expressed as a decimal from 0 to 1. A value of 0.3 represents a request of 30% -Xminf<x> minimum percentage of heap free after GC -Xmaxf<x> maximum percentage of heap free after GC Arguments to the following options are expressed as decimal numbers. -Xgcthreads<x> set number of GC threads -Xnoclassgc disable dynamic class unloading -Xclassgc enable dynamic class unloading -Xalwaysclassgc enable dynamic class unloading on every GC -Xnocompactexplicitgc disable compaction on a system GC -Xcompactexplicitgc enable compaction on a system GC -Xcompactgc enable compaction -Xnocompactgc disable compaction -Xlp enable large page support -Xdbg:<options> enable debug, JDWP standard options -Xrunjdwp:<options> enable debug, JDWP standard options -Xdbginfo:<symbol file path> enable debug info server -Xrdbginfo:<host><port> enable remote debug info server |
Refer to the following tables for a more detailed description of each of
these options:
Syntax
|
Description
|
---|---|
-Xbootclasspath:<path>
|
This command option sets the bootstrap classpath to <path>. Note: When using this command line option, the -jcl:LibraryName option must be used to indicate which class library natives the application should use: -Xbootclasspath:c:\ive\lib\jclCldc\classes.zip
If you use the -jcl:<path> without indicating a
-Xbootclasspath: <path>, then the value for the
Xbootclasspath: <path> is assumed
(%JAVAHOME%/lib/jclLibraryName/classes.zip). However,
if the class libraries are stored in a non-default location, then you must
include the -Xbootclasspath: <path> in order to direct
the VM to the classes.zip file.
|
-Xbootclasspath/p:<path>
|
This command option prepends <path> to the bootstrap classpath. Note: This option is useful for applying temporary fixes and/or adding to the
bootstrap classpath.
|
-Xbootclasspath/a:<path>
|
This command option appends <path> to the bootstrap classpath.
Note: This option is useful for applying temporary fixes to application classes
and/or adding to the bootstrap classpath.
|
-Xrun<dll>[:options]
|
Load helper libraries, such as those used with JVMPI.
|
-Xint
|
This command option runs interpreted only. This disables both the
JIT and AOT support.
|
-Xjit:<x>
|
This command enables JIT.
|
-Xnoaot
|
This command option prevents running the precompiled code.
|
-Xgcpolicy:optthruput
|
This command option sets no scavenger and no concurrent mark. This is the default. This garbage collection policy delivers very high throughput to applications, but at the cost of occasional pauses, which can vary from a few milliseconds to many seconds, depending on the size of the heap and the quantity of garbage. Garbage collection cycles introduce occasional unexpected pauses in the
execution of application code. Because applications grow in size and
complexity, and heaps become correspondingly larger, this garbage collection
pause time tends to grow in size and significance. This garbage
collection policy is the default.
|
-Xgcpolicy:optavgpause
|
This policy enables two garbage collection technologies whose aim is to minimize pause times; namely scavenger and concurrent mark. Provided the weak hypothesis that most objects die young holds true then the scavenger helps reduce pause times by concentrating the garbage collection effort on the nursery since it is there that most recyclable space will be found. Rather than occasional but lengthy pause times to collect the entire heap, the nursery is collected more frequently and provided the nursery is small enough, pause times will be comparatively short. However, over time the tenure area may become full if too many objects live too long. So in order to minimize the pause time when a collection of the tenure area is necessary, concurrent mark is enabled to perform some garbage collection activities concurrently with normal program execution. The optavgpause option substantially reduces the time that is spent in these garbage collection pauses, in addition to limiting the effect of increasing heap size on the length of the garbage collection pause. This option is particularly relevant to configurations that have large heaps. However, with the reduced pause time, you might experience some reduction of application throughput, which varies from application to application. This command option sets scavenger and concurrent mark.
|
-Xfuture
|
This command option enables the strictest checks, anticipating a future
default.
|
Syntax
|
Description
|
---|---|
-Xmca<x>
|
This command line option sets the RAM class segment increment to <x>. RAM class segments contain the portion of the Java classes that needs to be
modified at runtime, like the pointers to the class loader, super classes,
implemented interfaces, statics, first instance and so forth. There is
at least on RAM class segment per Class Loader. If more space for the
RAM classes is needed, then the J9 VM allocates a new segment in the same
size.
|
-Xmco<x>
|
This command line option sets the ROM class segment increment to <x>. The code of Java classes loaded from .class files is stored in special ROM Classes segment types called Dynamically Loaded Classes whose size are determined by this parameter. There is at least on ROM class segment per Class Loader. If more space for the dynamically loaded classes is needed, then the J9 VM allocates a new segment in the size determined by the class loader. Note: This parameter does not apply for classes loaded from a
Jxe. The "rom.classes" entry in the Jxe is mapped
directly to a ROM class segment.
|
-Xmn<x>
|
This command line option sets the initial and maximum NewSpace size to <x>. Note: This sets the size of the NewSpace and
SurvivorSpace. This command is only relevant if
-Xgcpolicy:optavgpause is set.
|
-Xmns<x>
|
This command line option sets the initial NewSpace size to
<x>.
|
-Xmnx<x>
|
This command line option sets the maximum NewSpace size to
<x>.
|
-Xmo<x>
|
This command line option sets the initial and maximum OldSpace
size to <x>.
|
-Xmos<x>
|
This command line option sets the initial OldSpace size to
<x>.
|
-Xmox<x>
|
This command line option sets the maximum OldSpace size to
<x>.
|
-Xmjit<x>
|
This command line option enables the micro JIT. Note: The micro JIT is not enabled by default. You must explicitly enable
the micro JIT on platforms that support it or J9 will run in interpreted mode
only.
|
-Xmoi<x>
|
This command line option sets the OldSpace increment to <x>. This value used to expand the OldSpace. A value of 0
means no expansion is allowed. If -Xmoi is not specified then there are
no restrictions on the expansion size of OldSpace.
|
-Xms<x>
|
This command line option sets the initial memory size to <x>. Note: This option is the same as -Xmos<x> plus
-Xmnx<x>.
|
-Xmx<x>
|
Memory object heap memory size -Xmx>=NewSpace size plus OldSpace size scavenger enabled: minimum size 1536 bytes on 32 bit architectures, 6072 bytes on 64 bit architectures scavenger disabled: minimum size 512 bytes on 32 bit architectures,
2048 bytes on 64 bit architectures
|
-Xmr<x>
|
This command line option sets the remembered set size to <x>.
|
-Xmrx<x>
|
This command line option sets the maximum size of remembered set to
<x>.
|
-Xmso<x>
|
This command line option sets the OS thread stack size to <x>.
|
-Xiss<x>
|
This command line option sets the initial Java thread stack size to
<x>.
|
-Xss<x>
|
This command line option sets the maximum Java thread to <x>.
|
-Xmine<x>
|
This command line option sets the minimum size for heap expansion to
<x>.
|
-Xmaxe<x>
|
This command line option sets the maximum size for heap expansion to
<x>.
|
-Xmdx<x>
|
This command line option sets the default memory space maximum size. Xmdx <=Xmx. Defaults to -Xmx/8. -Xmx - -Xmdx is the space available for user memory spaces created with the com.ibm.oti.vm.MemorySpace class provided in jclRM. Note: This is ignored if -Xresman is also used.
|
-Xresman<x>
|
This command line option enables resource managed support with the
com.ibm.oti.vm.MemorySpace class in
jclRM.
|
Syntax
|
Description
|
---|---|
-Xminf<x>
|
This command line option sets the minimum percentage of heap free after
GC.
|
-Xmaxf<x>
|
This command line option sets the maximum percentage of heap free after
GC.
|
Syntax
|
Description
|
---|---|
-Xgcthreads<x>
|
This command line option sets the number of GC threads
|
-Xnoclassgc
|
This command line option disables dynamic class unloading
|
-Xclassgc
|
This command line option enables dynamic class unloading only on class
loader changes (default)
|
-Xalwaysclassgc
|
This command line option enables dynamic class unloading during global
collection
|
-Xnocompactexplicitgc
|
This command line option will disable compaction on a system GC.
|
-Xcompactexplicitgc
|
This command line option will enable compaction on every system GC.
|
-Xcompactgc
|
This command line option will enable compaction.
|
-Xnocompactgc
|
This command line option will disable compaction.
|
-Xlp
|
This command line option will enable large page support.
|
Syntax
|
Description
|
---|---|
-Xdbg:<options>
|
This command line option enables standard Java Debug Wire Protocol (JDWP)
debug options.
|
-Xrunjdwp:<options>
|
This command line option enables standard JDWP debug options. Note: Start a JDWP server. For more information on the JDWP options, see the
Connection and Invocation Details web site.
|
-Xdbginfo:<symbol file path>
|
This command line option enables the debug info server.
|
-Xrdbginfo:<host>:<port>
|
This command line option enables the remote debug info server.
|
If you need more information or have questions about our product:
In the United States and Canada, call 1-800-IBM-CALL (1-800-426-2255)
In all other countries, you can submit your questions on the web at: http://www.ibm.com/software/pervasive/support/questions.shtml
You might find helpful information at the following websites or newsgroup:
This information was developed for products and services offered in the U.S.A. IBM(R) might not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service.
IBM might have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to:
IBM Director of LicensingFor license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property Department in your country or send inquiries, in writing, to:
IBM World Trade Asia Corporation LicensingThe following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the information. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this information at any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independently created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact:
IBM CorporationSuch information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee.
The licensed program described in this document and all licensed material available for it are provided by IBM under terms of the IBM Customer Agreement, IBM International Program License Agreement, or any equivalent agreement between us.
Any performance data contained herein was determined in a controlled environment. Therefore, the results obtained in other operating environments may vary significantly. Some measurements may have been made on development-level systems and there is no guarantee that these measurements will be the same on generally available systems. Furthermore, some measurement may have been estimated through extrapolation. Actual results may vary. Users of this document should verify the applicable data for their specific environment.
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.
All statements regarding IBM's future direction or intent are subject to change or withdrawal without notice, and represent goals and objectives only.
All IBM prices shown are IBM's suggested retail prices, are current and are subject to change without notice. Dealer prices may vary.
This information is for planning purposes only. The information herein is subject to change before the products described become available.
This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy, modify, and distribute these sample programs in any form without payment to IBM for the purposes of developing, using, marketing, or distributing application programs conforming to IBM's application programming interfaces.
You may copy, modify, and distribute these sample programs in any form without payment to IBM for the purposes of developing, using, marketing, or distributing application programs conforming to IBM's application programming interfaces.
Each copy or any portion of these sample programs or any derivative work, must include a copyright notice as follows:
(C) (your company name) (year). Portions of this code are derived from IBM Corp. Sample Programs. (C) Copyright IBM Corp. 2004 All rights reserved.
If you are viewing this information softcopy, the photographs and color illustrations may not appear.
The following terms are trademarks or registered trademarks of International Business Machines Corporation in the United States, or other countries, or both:
Java and all Java-based trademarks are trademarks of Sun Microsystems,
Inc. in the United States, other countries, or both.
Java
Microsoft, Windows, Windows NT, Windows Mobile and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.
Other company, product or service names may be trademarks or service marks of others.