General
Q. What is the PersonalJava application environment? A. The PersonalJava application environment is a Java platform
for building network-connectable applications for consumer devices
for home, office and mobile use. It is comprised of the Java Virtual Machine
(VM)* and an optimized version of the Java class library. In
addition, the PersonalJava API includes specific features required
by consumer applications in resource-limited environments. For an overview
of the PersonalJava application environment, click here.
Q. How does the PersonalJava application environment differ from the EmbeddedJava application environment? A. The PersonalJava application environment is designed for Web-connected consumer devices that are often executing applets from a network. To enable this "general purpose" functionality, a core required set of APIs or libraries
must be present on every PersonalJava-enabled device. The EmbeddedJava
application environment is targeted at dedicated-function embedded devices which may be network-connected
or standalone. These dedicated-function devices will be performing a defined set of software tasks which are well-known at product conception. Only the class libraries that are needed to support this set of software tasks are included on the device. Because of this, every EmbeddedJava implementation may be different since there is no concept of a core required set of
API's. The advantage of this is that the EmbeddedJava implementation often occupies a smaller memory footprint than the PersonalJava application environment.
Q. What are the main benefits of using PersonalJava technology? A. PersonalJava technology yields different benefits depending on your role in the creation of the consumer device:
Q. Where do I get access to PersonalJava technology? A. PersonalJava technology is available in either source or binary format.
Q. What is the PersonalJava emulation environment? A. The PersonalJava emulation environment is an application
developer tool which is released along with each revision of the PersonalJava application
environment. For more information, see the related question in the Applications Development section of this FAQ.
Q. How do I get more information about Java technology in general? A. There are a variety of books and on-line information on this subject. Some of the on-line information is as follows:
Q. What's new in the PersonalJava 3.0 application environment? A. Features which have been added since the release of the PersonalJava 1.1 application environment include:
![]() Example e-mail application interface using the Touchable look-and-feel Note that the PersonalJava 3.0 application environment is based on the PersonalJava 1.1.1 specification. The PersonalJava 1.1 application environment is based on the PersonalJava 1.1 specification.
A. Yes. Version 3.0 of the PersonalJava application environment directly follows version 1.1. There are no versions named "2.x". The reason we made this jump in the numbering system is to avoid confusion with the JDK numbering system. All current versions of the PersonalJava application environment are based on JDK 1.1.x. In the future, Sun will be examining one-by-one the JDK 1.2 features for possible inclusion into the PersonalJava platform. Only those features suitable for the majority of consumer devices will be incorporated. The following chart may help clarify the numbering scheme:
Note that all dot-dot versions of the specification are minor updates that clarify and remove errors in previous versions. Thus, the version 1.1.3 specification obsoletes version 1.1.2. Similarly, the version 3.0.2 reference implementation obsoletes version 3.0.1.
A. The PersonalJava reference implementation is a software release that contains source code
and a development environment. It is an implementation
of the PersonalJava specification. A future release of the reference implementation
could include many optimizations and bug fixes while
the specification itself remains unchanged.
Q. How do I define an extension to the PersonalJava API? A. Extensions to the any Java platform can be defined by either a Sun or non-Sun entity. The process for doing so is described in the Java Community Process document.
Q. What is Java 2 Platform, Micro Edition (J2ME)? A. Java 2 Platform, Micro Edition (J2ME) is the edition of the Java platform which addresses the needs of the consumer and embedded device space. ![]() J2ME Architecture Referring to the above figure, the J2ME architecture is composed of configurations and profiles. A configuration is composed of a minimal layer of core libraries designed to provide just enough functionality to safely and securely download Java classes to a device and configure the Java environment. The rest of the functionality needed to provide a complete runtime environment for a particular kind of device is provided within the context of an industry defined profile.
There are two configurations. The first configuration, the Connected Device Configuration (CDC), uses the classic Java virtual machine. This virtual machine is a full-featured virtual machine with the same functionality you would find in the virtual machine residing on your desktop system. The second configuration, the Connected Limited Device Configuration (CLDC), uses the K Virtual Machine, a small footprint virtual machine for severely memory constrained environments. The CLDC is targeted for Java environments of 128-512KB, and the CDC is targeted for Java environments of greater than 512KB. Profiles are targeted for a specific device type. Examples of possible profiles are shown in the above figure. Profiles are defined through the Java Community Process by a group of industry experts who are tasked with the job of creating a standard Java API for their particular area. Note that the definition of a profile would specify one of the configurations. Also, a profile can embed another profile within its definition.
Q. Are the J2ME configurations available today? A. To follow the progress of the definition of the J2ME configurations, please refer to the Java Community Process web site.
Q. How does PersonalJava technology fit into the Java 2 Platform, Micro Edition (J2ME) architecture? A. PersonalJava technology will be transitioned into the sum of the Connected Device Configuration (CDC) and the Personal profile. ![]() PersonalJava application environment within the context of the J2ME architecture Applications written to versions 1.1.x and 1.2 of the PersonalJava API specification should be compatible to the CDC + Personal profile stack.
Q. What is the difference between PersonalJava technology and the K virtual machine? A. PersonalJava technology consists of a virtual machine plus a set of class libraries. The K virtual machine is a virtual machine only. It is a base upon which sets of vertically targeted API's, or "profiles", will run. Click here for more information.
A.
Q. We have in-house software developers who want to develop PersonalJava applications specifically for our device. How do they get started? A. Building a device-resident application is like building any PersonalJava application. Refer to the list of steps in the
Application Development section of this FAQ. After the application is
developed, use the JavaCodeCompact tool (available with the Community Source download)
in conjunction with a cross-compiler to generate the
ROM code suitable for your target device platform. Note that application
prototyping can begin in advance of RTOS and hardware selection due to the
platform-independent nature of the Java programming language.
Q. I want to port the PersonalJava platform to an operating system, where can I get guidelines for doing this? A. A porting guide is provided through the Community Source License model. This guide covers the following topics in detail:
Q. What has Sun done to reduce the memory footprint required by the PersonalJava application environment? A. A Technical Note which describes this in detail for the PersonalJava 1.1 application environment is available. For future versions of the PersonalJava application environment, Sun is continuing to make improvements in order to support customer needs as the industry evolves.
Q. What real-time operating system (RTOS) vendors currently support PersonalJava technology? A. Current resellers of the PersonalJava application environment are listed on the PersonalJava main page. With the Community Source Licensing model, it is expected that many others will begin offering other binary versions of this product.
Q. What is the Community Source Licensing model announced in December 1998, and how does it affect the device developer? A. Under the Community Source Licensing model, the source code will be freely available for development purposes. This is expected to happen in February 1999. Read more about Community Source Licensing: As a device developer, it is expected that you will have many more choices on where to obtain the PersonalJava application environment. You can obtain a binary version from the RTOS vendors who have been working with PersonalJava since the beginning, you can download the source code from Sun's Community Web Server in February 1999, or you can obtain it from one of the other resellers who are expected to take advantage of the Community Source to offer yet other binary versions.
A. Writing applications or applets can be done independent of hardware and RTOS selection due to the platform-independent nature of the Java programming language:
Q. Is there a tool that allows me to try out my PersonalJava application or applet without needing to purchase all the devices where I expect my software to run? A. Yes. A run-time environment called the PersonalJava
emulation environment is available with each revision of the PersonalJava application environment. The PersonalJava emulation environment is a free software environment
which is available on both Solaris and
Win32 platforms. Using the PersonalJava emulation environment eliminates
the need to try out your software on each and every device where you expect
your software to run. This eliminates a lot of the expense of software
development. There are four versions of the PersonalJava emulation environment available depending on which look-and-feel you wish to emulation. All four of these versions support applets and applications written for either version 1.1 or version 3.0 of the PersonalJava application environment.
Q. I'm developing software for the Japanese market, does PersonalJava support internationalization? A. Yes. The PersonalJava 1.1 and 3.0 API's include internationalization
(i18n) support. Internationalization is the process of enabling a program
to run internationally without recompilation. The PersonalJava platform
supports the internationalization features of JDK 1.1.x. Once an application
is internationalized, enabling it to run in a particular country is
a matter of creating a "locale" bundle for that country and language.
The PersonalJava platform supports the i18n features of JDK 1.1. However, to
conserve RAM usage, PersonalJava implementations can be configured to support
just the desired set of locales. The Truffle Graphical Toolkit which is part of the PersonalJava 3.0 application environment supports input methods for Asian language text entry.
Q. How do I ensure that my application conforms to the PersonalJava API specification? A. JavaCheck
is a developer tool that checks whether or not an application or applet
conforms to the PersonalJava API specification and will therefore run on the PersonalJava platform. JavaCheck is available for free from Sun's web site. It may also be bundled with the third party IDE that you are using.
Q. Is backward compatibility of applications preserved with new revisions of the PersonalJava platform, e.g., are PersonalJava 1.0 and 1.1 applications compatible in the PersonalJava 3.0 application environment? Q. What is the Community Source Licensing model announced in December 1998, and how does it affect the application developer? A. As an application developer, you will be indirectly benefited by the Community Source License model (see related question in the Consumer Device Development section).
It is expected that more devices will be built with the PersonalJava application environment thereby increasing the number of devices where your software can run. Also, through the Community Source License model, you can download the
source code to help give you more visibility into the PersonalJava class libraries.
Q. What is the process for ISV's to get branding for their software product? A. ISV's should send inquiries about branding to marketing@java.sun.com. *As used on this web site, the terms "Java virtual machine" or "JVM" mean a virtual machine for the Java platform. | ||||||||||||||
|
| ||||||||||||