This website is using cookies. We use cookies to ensure that we give you the best experience on our website. More info. That's Fine
HPC:Factor Logo 

Microsoft Virtual Machine for Java (MSVM)

Microsoft Java Virtual Machine for Windows CE
You must be registered and logged into HPC:Factor in order to contribute to the SCL.


Readme for the Microsoft Virtual Machine for Java for Windows CE 2.1,
Handheld PC Professional Edition 3.0

September 1998
(c) Microsoft Corporation, 1998. All rights reserved.

Testing the Java Virtual Machine on your HP Jornada 820/820e
You can test that you built the ROM image correctly by running the Hello sample application.

Before you can run the Hello application on an H/PC Pro, you need to copy the .class files for the application to the H/PC Pro.

>>>To copy application .class files to the H/PC Pro:

1. Be sure that your H/PC Pro is connected to your desktop computer.
2. From the Start menu on your desktop computer, choose Programs, then Microsoft Windows CE Services, then Mobile Devices.
3. Double-click on the name of your device in the Mobile Devices window to open the window for your device.
4. Open the \Windows directory for your device.
5. Open Microsoft(R) Windows NT Explorer.
6. Use Explorer to open the directory with the Hello sample files. The samples are included in the \Jupiter\MSVM\SDK\Samples folder on this CD.
7. Select Hello.class and Frame1.class, then choose Copy on the Edit menu.
8. Return to the \Windows directory on your H/PC Pro using the H/PC Explorer, and choose Paste on the Edit menu.

Now you can execute the application on the H/PC Pro.

>>>To execute the Hello application:

1. Choose Run from the Start menu on the H/PC Pro.
2. Type "jview hello" in Open field of the Run dialog box.
3. Choose OK in the Run dialog box. The Hello World application window appears on the H/PC Pro. The Hello World application window contains the following text:

Date: <current date and time>
From: WinCE VM for Java Team
To: WinCE User
Subject: Hello world!
Msg: Click anywhere to quit.

4. Tap anywhere in the Hello World application window to exit the application.

Additional information : Properties Files Must be Placed in the \Windows\Lib Directory
If you want to download the MSVM dynamic-link libraries (DLLs) to a device, you should also copy some files from the \properties directory to the \Windows\Lib directory of the Windows CE-based device.

You need to copy the Awt.properties file to \Windows\Lib for applications or applets that use the Abstract Windowing Toolkit (AWT).

Copying the Content-types.properties file to \Windows\Lib is recommended for all applications and applets that use Multipurpose Internet Mail Extensions (MIME) types.

Copying the Appletviewer.properties file to the \Windows\lib directory is recommended if your applet uses the sun.applet.Appletviewer class, but transferring the Appletviewer.properties file is not necessary if you use the jview command with the -applet option to execute your applet.

You should always copy the java.security file to \Windows\Lib\security.

Additional Technical Notes
(extracted from the Microsoft® Software Development Kit (SDK) for Java for Windows® CE)

The MSVM Exits Without Throwing an Exception When Memory is Low
If the MSVM makes two attempts to get more program memory after garbage collection and there is still less than 256 kilobytes (KB) of memory available, the MSVM exits without throwing an exception. This behavior prevents the MSVM from using all of the available memory, and prevents the MSVM from leaving insufficient free memory for the operating system to recover from the low memory condition.

The MSVM Parses Some HTML Files Improperly When Running jview -applet
Avoid extra white-space characters - spaces, tabs, and line breaks - in an HTML file used with the jview -applet command. The following code example shows the recommended format for an applet tag.

<applet code=myapplet.class name=myapplet width=320 height=240 >
<param name=word value="rock">

You Cannot Run Multiple Applets Simultaneously with jview -applet
You cannot use the applet viewer provided by the -applet option of the jview command to run multiple applets simultaneously.
Run only one applet at a time when testing applets on an H/PC, when debugging applets with the Windows CE Toolkit for Visual J++, or when running applets from an HTML file.

Jview Command Line
When you specify the -classpath option to Jview, you must put double quotes around any directory name that contains a space. Place the quotes around the directory name itself, not around the full path. For example:

jview.exe -verify -classpath \"Storage Card"

Windows CE-based Devices Do Not Have a Current Working Directory
You cannot rely on using the current working directory when referring to files in your applications written in Java. A Windows CE-based device does not have a current working directory.

Building the MSVM into a ROM Image
You can use the Embedded Toolkit (ETK) together with this SDK to build binary images for read-only memories (ROMs) that contain the MSVM.

To build ROMs, you need to copy the MSVM DLLs to your flat release directory. Then add the MSVM DLLs names to the binary image builder (Project.bib) file that controls building the image.

The following code example shows the entries that you need to add to the Modules section of Project.bib file.

jview.exe $(_FLATRELEASEDIR)\jview.exe NK S
ce_awt.dll $(_FLATRELEASEDIR)\ce_awt.dll NK SH
ce_irda.dll $(_FLATRELEASEDIR)\ce_irda.dll NK SH
ce_local.dll $(_FLATRELEASEDIR)\ce_local.dll NK SH
ce_math.dll $(_FLATRELEASEDIR)\ce_math.dll NK SH
ce_net.dll $(_FLATRELEASEDIR)\ce_net.dll NK SH
ce_zip.dll $(_FLATRELEASEDIR)\ce_zip.dll NK SH
cejbmp.dll $(_FLATRELEASEDIR)\cejbmp.dll NK SH
cejvm.dll $(_FLATRELEASEDIR)\cejvm.dll NK SH
jcls.dll $(_FLATRELEASEDIR)\jcls.dll NK SH
jdbgdll.dll $(_FLATRELEASEDIR)\jdbgdll.dll NK SH
verifier.dll $(_FLATRELEASEDIR)\verifier.dll NK SH

You will also need to add the information about the location of each of the properties files that you decide to include in the ROM image to the Project.bib and Project.dat files. You can find the properties files in the \properties subdirectory of the SDK.

To add the information about the properties files, first move a copy of the properties files to your flat release directory. Then add the information about the location of the properties files to the Project.bib and Project.dat files.

The following code example shows the entries that you need to add to the Files section of the Project.bib file.

awt.properties $(_FLATRELEASEDIR)\awt.properties NK SH
content-types.properties $(_FLATRELEASEDIR)\content-types.properties NK SH
appletviewer.properties $(_FLATRELEASEDIR)\appletviewer.properties NK SH
java.security $(_FLATRELEASEDIR)\java.security NK SH

The state of the IMGMVSM environment variable in the Project.bib entries controls whether a ROM image build includes the MSVM files. By default, the ETK does not set the IMGMSVM variable. To set the IMGMSVM environment variable, you must add the following line to your platform\platform.bat file.

set IMGMSVM =1

The following code example shows the entries that you need to add to the end of the Project.dat file.

Directory("\Windows\lib"):-File("awt.properties", "\Windows\awt.properties");
Directory("\Windows\lib"):-File("content-types.properties", "\Windows\content-types.properties");
Directory("\Windows\lib"):-File("appletviewer.properties", "\Windows\appletviewer.properties");
Directory("\Windows\lib\security"):-File("java.security", "\Windows\java.security");

After making the changes to the Project.bib and Project.dat files, run the makeimg command in an ETK build window to create the ROM image.

Note Redistributing the MVSM in ROM without a license is prohibited.

The Runtime.exec Method Ignores Environment String Arguments
Windows CE does not support environment variables. If you use a form of the Runtime.exec method that includes an argument specifying the environment as a array of strings, the MSVM ignores that argument. Specifically, the MSVM ignores the envp argument in the following forms of the Runtime.exec method.

public Process exec(String command, String[] envp) throws IOException;
public Process exec(String[] cmdarray, String[] envp) throws IOException;

SDK for Java for Windows CE
The Microsoft Software Development Kit (SDK) for Java for Windows CE contains release notes, detailed documentation, and desktop tools that help you to better use the MSVM. You can find the SDK on the Microsoft Windows CE web site at http://www.microsoft.com/windowsce.

Installation Instructions

Installing the MSVM on your HP Jornada 820/820e

In order to install the Microsoft Java Virtual Machine on your HP Jornada,
you need to copy the following files into the Windows directory.



MicrosoftprogrammingjavaVirtual Machine

License Freeware
The program is completely free to use.
Website http://www.microsoft.com
Not working? Try this website on the WayBack Machine
Popularity 388
Total Downloads  149
Submitted By C:Amie
Submitted On 01 December 2018


C:Amie 01 December 2018 at 10:34:39 PM
With thanks to Mjolnir for making this available.

You must be signed-in to post comments in the SCL. Not registered? Join our community.

Software Compatibility List: The SCL is provided for free to the Handheld PC Communty and we do not carry advertising to support our services. If you have found the SCL useful, please consider donating.