|
|
|

| |
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:
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.
Q.
Did Sun skip from version 1.1 of the PersonalJava application environment to version 3.0?
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:
|
Specification Version
1.1 1.1.1 1.1.2 1.1.3 |
Environment Version
1.1 3.0.1 --- 3.0.2 |
JDK Version
1.1.6 1.1.7 --- 1.1.8 |
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.
Q.
Why has the PersonalJava
reference implementation been released as version 3.0 and the PersonalJava
specification been released as version 1.1.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.
| |
Q.
What do I need to get started with implementing PersonalJava technology on my electronic device?
A.
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.
| |
Q.
What do I need to get started with writing applications for the PersonalJava application environment?
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.
