After far too long, the Blackdown team has produced a new FAQ. Here's
the latest ASCII rendition. There is now a (letter) PDF version
available in addition to the other formats. The preferred form is
still HTML; that can be found at:
http://www.blackdown.org/java-linux/docs/faq/FAQ-java-linux.html
I will continue to accept comments and corrections personally, but
we're also thinking about a special mailing list for FAQ suggestions.
If I've missed one of your requests this time, please let me know!
Stephen Wynne
[EMAIL PROTECTED]
---------------------------------
[EMAIL PROTECTED] FAQ
by Stephen M Wynne
January 11 2000
This document attempts to answer the most commonly-asked questions on
the [EMAIL PROTECTED] mailing list. Its focus is the
Blackdown Java Platforms for Linux. It also serves as a form of HOW TO
document for running Java on Linux. More information on running Java
on Linux is available at http://www.blackdown.org/.
______________________________________________________________________
Table of Contents
1. An Introduction to the Blackdown Project
1.1 Questions about Blackdown Java
1.1.1 What is the current status of Blackdown Java?
1.1.2 How do I get started quickly?
1.1.3 What is Blackdown Java?
1.1.4 What information resources are available at Blackdown?
1.2 Blackdown's Philosophy
1.2.1 Statement of Purpose for the Blackdown Project
1.3 The Java Linux Mailing List
1.3.1 What topics are appropriate for the Java-Linux mailing list?
1.3.2 How can I get subscribed? Unsubscribed?
1.3.3 Where can I find archived postings from this list?
1.4 Other Resources for Linux Java Users
1.4.1 Where can I find more information and Java tools for Linux?
2. About Blackdown Java for Linux
2.1 Questions about the JDK
2.1.1 What is Sun's JDK?
2.2 Questions about the JRE
2.2.1 What is Sun's JRE?
2.3 An Overview of Using Blackdown Java
2.3.1 What can I expect from Blackdown Java on Linux?
2.3.2 What is the currently-supported version of Blackdown Java?
2.3.3 For what other hardware architectures is Blackdown Java available?
2.3.4 Under what license is Blackdown Java available?
2.3.5 Is Javasoft going to support Java on Linux?
2.3.6 Where can I find online reactions to the Inprise release?
2.4 Blackdown Java for Linux System Requirements
2.4.1 What are the minimum system software requirements?
2.4.2 What are the minimum hardware requirements?
2.5 Downloading Blackdown Java for Linux
2.5.1 Where do I obtain JDK 1.02, 1.1, and 1.2?
2.5.2 How do I install?
2.5.3 What is the currently-supported version of Blackdown Java?
2.5.4 Which is the latest version?
2.5.5 OK, which version of the JDK should I download?
2.5.6 JDK 1.02 Downloads:
2.5.7 JDK 1.1 Downloads:
2.5.7.1 What are these files in the FTP mirror directories?
2.5.8 When do I need extra *native* binaries?
2.5.9 JDK 1.2 Downloads:
2.5.9.1 How should I download Java archives ending in .sh?
2.5.9.2 How do I deal with downloaded files ending in .bz2?
2.5.9.3 Hey, why doesn't Blackdown use xdelta?
3. The Various Blackdown Java Editions for Linux
3.1 Information relevant to the Blackdown 1.02 JDK.
3.1.1 What do I need to know about the Blackdown JDK 1.02?
3.2 Information relevant to the Blackdown 1.1 JDK.
3.2.1 What is the latest 1.1 release? Does it support native threads?
3.2.2 What about all those versions of 1.1?
3.2.3 Where can I get SWING (JFC) for Java 1.1?
3.2.4 Is there a JIT for Blackdown Java 1.1?
3.3 Information relevant to the Blackdown 2.x Java Ports
3.3.1 When is the JDK 1.2 Going to be Released for Linux?
3.3.2 What about the libc compatibility and Blackdown Java 2?
3.3.3 Will there be a patch for the latest Java 2 release candidate?
3.3.4 How do I upgrade from libc2.0 to libc2.1 ?
3.3.5 What does "Standard Edition" in the J2SE acronym mean?
3.3.6 Does Swing (also know as JFC) come with the JDK 1.2?
3.3.7 Is Sun's sunwjit just in time compiler working with JDK 1.2.2?
3.3.8 Is Sun's HotSpot JIT being ported?
3.3.9 What about the new debugging interfaces for Java 2?
3.4 Just In Time Compilers for Blackdown Java
3.4.1 Is there a JIT (Just in Time Compiler) for the Blackdown JDK?
3.5 Other Vendors' Java Editions for Linux
3.5.1 What other vendors and individuals are supplying Java for Linux?
4. Blackdown-supported Java APIs
4.1 The Gamut of Javasoft APIs Versus the Blackdown Ports
4.1.1 What Java APIs are supported?
4.1.2 What is the latest status on a given API?
4.2 Threads and Blackdown Java
4.2.1 What are the two types of threads used in Java on Linux?
4.2.2 Are native threads on Linux limited in any way?
4.2.3 Is there a native threads port of Blackdown Java?
4.2.4 What are Green threads?
4.2.5 What about Green threads and console priority?
4.2.6 Is there a problem with Green threads and the JVM invocation API?
4.2.6.1 Green Threads and Wrapped System Services
4.2.6.2 Hacking Around the System Service Wrappers
4.2.7 Where can I find more information about threads on Linux?
4.3 Blackdown Support for Jini
4.3.1 Does Blackdown Java support the Jini API?
4.3.2 Where can I find out more about Jini?
4.4 Blackdown Java Browser Plugin
4.4.1 Is there a browser plugin for standard Java support?
4.4.2 Where can I read more about Sun's Java plugin products?
4.4.3 What needs to be done to add plugin support to HTML pages?
4.4.4 What does the Java Plug-in HTML Converter do?
4.5 Blackdown Support for Java Native Interfaces
4.5.1 How does JNI work with Blackdown Java?
4.5.2 Why should I be interested in Native Interfaces on Linux?
4.5.3 Is there anything different about native interfaces on Linux?
4.5.3.1 Compiling Library Code for JNI
4.5.4 How can I step into native methods used by the JVM?
4.5.5 Where are some good online references for JNI on Linux?
4.6 Blackdown Support for the Java 3D API
4.6.1 Does the Java 3D API work with Blackdown Java?
4.6.2 How do I install the 3D package if I'm on RedHat 5.2?
4.7 Support for the Java Platform Debugging Architecture
4.7.1 Is the JPDA supported with recent Blackdown JVM 1.2 builds?
4.7.2 How can I use a debugger to examine native methods used by the JVM?
4.8 Blackdown Support for Java Media Framework API
4.8.1 Is the Java Media API ported to Java on Linux?
4.8.2 Is there a pure-Java implementation of the JMF?
5. Running Blackdown Java on Linux
5.1 Blackdown Java Installation Questions
5.1.1 How do I install the JDK?
5.1.2 Why doesn't Blackdown supply .deb or .rpm packages?
5.2 Linux Distribution-specific Questions
5.2.1 What distributions of Linux support Blackdown Java?
5.2.2 I'm on <your favorite Linux distribution here> what do I need?
5.2.2.1 Missing libXp
5.2.2.2 The glibc versus libc5 Problem
5.3 Blackdown Java on Debian GNU/Linux
5.3.1 Does Blackdown Java work on Debian?
5.4 Blackdown Java on RedHat Linux
5.4.1 Does RedHat Linux support Blackdown Java?
5.4.2 RedHat Blackdown Java Installation Tips
5.4.2.1 RedHat RPM Availability
5.4.2.2 RedHat/RPM Environment Variable Issues
5.4.3 What do I need to do in order to run Blackdown Java 1.2.x?
5.4.4 Does RedHat support TrueType Fonts?
5.4.5 What's wrong with my font server?
5.5 Blackdown Java on Slackware Linux
5.5.1 Does Blackdown Java Work on Slackware?
5.6 Blackdown Java on SuSE Linux
5.6.1 Does Blackdown Java work on SuSE?
5.7 Questions about x86 Blackdown Java Ports
5.7.1 Intel-specific Issues
5.7.2 AMD-specific Issues
5.7.3 Cyrix-specific Issues
5.8 Questions about Non-x86 Blackdown Java Ports
5.8.1 Alpha Issues
5.8.1.1 Is there an Alpha Port?
5.8.2 Arm Issues
5.8.2.1 What is the status of the Arm ports?
5.8.3 PPC Issues
5.8.3.1 Is there a PowerPC Port?
5.8.4 SPARC Issues
5.8.4.1 What's the status of the SPARC Port?
5.8.4.2 What is the status of the Blackdown Java 2 for SPARC?
5.8.4.3 Does a SPARC JIT exist for 1.2?
6. Troubleshooting Blackdown Java on Linux
6.1 Troubleshooting and Reporting Bugs in Java on Linux
6.1.1 What should I consider when troubleshooting Java on Linux?
6.1.2 Kaffe and the Blackdown JDK 1.1 are Installed. Neither Work!
6.1.3 I Have the Blackdown JDK 1.1.x and RMI is Giving Me Fits!
6.1.4 I've upgraded to ld.so-1.9.9 on Slackware and now Java coredumps!
6.1.5 Help, Java said it ran out of memory!
6.1.6 How do I add swap space?
6.1.7 Where can I report bugs?
6.1.8 What should I report?
6.1.9 Are there any debugging techniques I can try myself?
6.1.10 That didn't help. What else can I do?
6.2 Blackdown Java and System Environment Variables
6.2.1 What environment variables affect Blackdown Java?
6.3 Blackdown Java and X11
6.3.1 Can I run Java without X11 installed?
6.4 Font Problems and Blackdown Java
6.4.1 Why are TrueType fonts required for Java 2?
6.4.2 Can't Blackdown just copy fonts from someplace into a Distribution?
6.4.3 Will the situation with TrueType fonts get better?
6.4.4 Why don't we just turn off the warnings?
6.4.5 Will there be future support for TrueType Fonts in X11?
6.4.6 Where can I learn more about TrueType in X11?
6.5 Problems with Window Managers and Blackdown Java
6.5.1 What kinds of problems are related to X11 window managers?
6.5.2 Where is the ICCCM Standard?
6.6 Performance and Blackdown Java
6.6.1 How well does Blackdown Java perform?
6.6.2 How can I find out how much memory Java is using?
7. Other Questions Related to Java and Linux
7.1 General Questions about Linux
7.1.1 Where can I find Linux FAQs, mailing lists, and documentation?
7.1.2 What is glibc, and why does it matter?
7.2 General Questions about Java
7.2.1 What is Java?
7.2.2 Why was the Java language created?
7.2.3 Where can I learn more about Java?
7.2.4 Is Java secure?
7.3 CJK Issues with Blackdown Java
7.3.1 Can I display and input Kanji with Blackdown Java?
7.3.1.1 Library Issues
7.3.1.1.1 Libc5 Systems
7.3.1.1.2 Libc6 (glibc) Systems
7.3.1.2 Can I enter two byte Kanji with XIM?
7.4 Blackdown Java Y2K Issues
7.4.1 Are there any Y2K problems with Blackdown Java?
8. Blackdown Java Development and Platform Porting
8.1 Development with Blackdown Java
8.1.1 How can I learn more about developing Java on Linux?
8.1.2 How do I compile native C or C++ code for interfaces?
8.2 Java Code Examples
8.2.1 Where can I find some example Java code to get started?
8.3 Java Licensing and the Open Source Community
8.3.1 What issues are relevant to understanding Java licensing?
8.3.1.1 Licensing for Java Binaries
8.3.1.2 Licensing for Java Source
8.3.2 Licensing Comparisons
8.3.3 Blackdown's Position on Sun's Community Source Policies
8.3.4 Where can I find Sun's Community Source Agreement?
8.4 Compiling Blackdown Java from Source
8.4.1 Can I build Java myself?
8.4.2 Could you give me a pointer to Sun's licensing agreements?
8.4.3 How do I build Blackdown JDK 1.2 now that I have the source?
8.4.4 What about Motif? Don't I need that?
8.4.5 What version of Motif is the Blackdown team using?
8.4.6 When I build and install 1.1, I get unsatisfied link errors at runtime!
8.4.7 Can I try builds of the latest JDK port in development?
8.4.8 What about the JCK?
8.4.9 How can I contribute to Blackdown Java development efforts?
8.4.10 What is a source patch?
8.5 Java Compatibility Kit
8.5.1 What does Blackdown use to test Java's adherence to Sun's standards?
8.5.2 Does any build of Blackdown Java 2 pass the JCK?
8.5.3 Will Sun make the JCK more accessible?
8.5.4 Is there any online documentation for the JCK?
8.5.5 The Latest Blackdown JCK Notes
9. History and People of the Blackdown Java Effort
9.1 History of the Blackdown Java Effort
9.1.1 What is the history of the Blackdown project?
9.1.2 Other Historical Information
9.2 About the People Behind Blackdown Java
9.2.1 Who Ported the Blackdown JDK?
9.2.1.1 The Java 1.02 Port:
9.2.1.2 The Java 1.1 Ports:
9.2.1.3 The Java 1.2 Ports:
9.2.1.4 Collecting History
9.2.2 Who is Steve Byrne?
9.2.3 Who is Karl Asha?
9.2.4 Who is Juergen Kreileder?
9.3 Information on the Java-Linux FAQ
9.3.1 Who maintains the FAQ?
9.3.2 Where can I get a copy of the FAQ?
9.3.3 Please help the FAQ maintainer!
9.3.4 Are there any plans for automating the FAQ?
9.3.5 Caveat Emptor
9.3.6 Terms of Use
9.3.7 Major Contributors to this Edition of the FAQ
9.3.8 Other Acknowledgements
______________________________________________________________________
$Id: header.sgml,v 1.11 2000/01/11 06:50:21 stevemw Exp $ $Name: $
1. An Introduction to the Blackdown Project
This section offers a guide to resources provided by the Blackdown
project.
Every man, from the highest to the lowest station, ought to
warm his heart and animate his endeavours with the hopes of
being useful to the world, by advancing the art which it is
his lot to exercise; and for that end he must necessarily
consider the whole extent of its application, and the whole
weight of its importance.
-- Samuel Johnson, April 17, 1750.
From Pride In Work: the Samuel Johnson Sound Bite Page quoted in num-
ber 521 at http://www.samueljohnson.com/prideinw.html.
1.1. Questions about Blackdown Java
This section of the FAQ discusses the Blackdown Java Linux project,
mailing list etiquette, and provides pointers to other resources for
Linux Java users.
Last update:
$Id: about-blackdown.sgml,v 1.5 2000/01/11 06:50:19 stevemw Exp $
1.1.1. What is the current status of Blackdown Java?
Please see http://www.blackdown.org/java-linux/ports.html.
1.1.2. How do I get started quickly?
See section ``How do I install the JDK?''.
1.1.3. What is Blackdown Java?
The term "Blackdown Java" describes a group of Sun Java products
ported to Linux by the Blackdown development team. Blackdown was the
first group to port Java 1.0, 1.1, and then 1.2 to Linux. Other
vendors have since followed. See section ``Other Java Linux Vendors''
for an incomplete list.
If you're new to Java, please see section ``What is Java?'' for an
introduction to the Java language. If you are having any difficulty
understanding terms in this FAQ, one place to go for definitions is
Javasoft's Glossary of Java and Related Terms at
http://www.javasoft.com/docs/glossary.nonjava.html or Roedy Green's
Java Glossary at http://mindprod.com/gloss.html.
Here's a partial list of tools Blackdown has contributed towards
porting:
o Sun's basic JDK(Java Developer's Toolkit), including:
o JDK 1.0. See section ``Java 1.0 Edition''.
o JDK 1.1. See section ``Java 1.1 Edition''.
o JDK 1.2. See section ``Java 2.0 Edition''.
o See section ``What is the JDK?'' for a description of the JDK.
o The 3D-API. See section ``Blackdown Support for the Java 3D API''
for more information.
o An Internet browser Java plugin. See section ``Java Plugin''.
o Java Media Framework API; See section ``JMF'' for more details.
1.1.4. What information resources are available at Blackdown?
Karl Asha's Blackdown server, http://www.blackdown.org/, has a number
of resources. Among other things, Karl provides the following
pointers:
o Recent news about running Java on Linux:
http://www.blackdown.org/java-linux/info.html
o Javasoft-supplied products: http://www.blackdown.org/java-
linux/products.html
o Java Tools: http://www.blackdown.org/java-linux/javatools.html
o Information about Third-party Java products running on Linux:
http://www.blackdown.org/java-linux/otherproducts.html
1.2. Blackdown's Philosophy
This section contains the formal statement of purpose for the
Blackdown project and its participants.
Last update:
$Id: philosophy.sgml,v 1.2 1999/12/31 08:36:20 stevemw Exp $
1.2.1. Statement of Purpose for the Blackdown Project
We each are dedicated to the professional development of the
Java platform for Linux based on the community source con-
cept. We see participation in the Blackdown project as a
cutting-edge opportunity for intellectual cooperation
between the open source community and the commercial soft-
ware industry. We each are committed to abiding by the
agreements we've made with Sun and other technology vendors.
We aim to use their good will to further the cause of inde-
pendence for software developers around the world. A bridge
between the open source community and the commercial soft-
ware development world is to everyone's advantage, and we
would like to exemplify that relationship. We believe that
the vendors with whom we partner are committed to the same
ideals.
For an informal look at Blackdown's perspective on the developing
"open source" relationship Sun, please see section ``Blackdown's
Position on Sun's Community Source Policies''.
1.3. The Java Linux Mailing List
This section offers assistance for those wanting to use the mailing
list for the first time. The strength of the Linux Java community lies
in its willingness to share information, so you are encouraged to join
us no matter how new you are to Java or Linux.
Last update:
$Id: mailing-list.sgml,v 1.5 2000/01/11 06:50:21 stevemw Exp $
1.3.1. What topics are appropriate for the Java-Linux mailing list?
o Before you post a question asking for help, please read your
distribution's Blackdown README.* files for important information
about the build you're using.
For example:
1. Java 1.2: http://www.blackdown.org/java-
linux/docs/faq/README/1.2/README.linux
2. Java 1.1: http://www.blackdown.org/java-
linux/docs/faq/README/1.1/README.linux
3. Java 1.0: http://www.blackdown.org/java-
linux/docs/faq/README/1.0/Java-Linux-HOWTO.
o Choose a descriptive Subject: line for your mail.
o When reporting problems, please follow the guidelines in section
``What Should I Report?''.
o Posts with lines wrapped at 75-80 characters are easier to read!
o Spamming the list or using members' E-mail addresses for commercial
purposes is forbidden.
o Some list users may ignore messages created in HTML or that include
proprietary attachments.
o Do not followup improper postings to the entire list; copy only the
sender and
Karl Asha <[EMAIL PROTECTED]>, the list administrator.
o Please avoid inflammatory language.
We hope that the FAQ will help you solve many of your problems and
enable you to participate on the mailing list more effectively. If it
didn't, please contact the maintainers with your suggestions and we
will improve it. See section ``Who maintains the FAQ?'' for details.
1.3.2. How can I get subscribed? Unsubscribed?
Please don't send E-mail directly to the list requesting these status
changes! Visit http://www.blackdown.org/ and follow the links to
instructions or use the links provided in the next paragraph.
The following URL would work in Netscape Mail to subscribe you: java-
[EMAIL PROTECTED]?subject=subscribe
And this should unsubscribe: java-linux-
[EMAIL PROTECTED]?subject=unsubscribe
1.3.3. Where can I find archived postings from this list?
Karl Asha has arranged for the list to be archived here:
http://www.mail-archive.com/java-linux@java.blackdown.org/.
1.4. Other Resources for Linux Java Users
Information about resources other than Blackdown for Linux Java users.
Last update:
$Id: other-resources.sgml,v 1.3 2000/01/11 06:50:22 stevemw Exp $
1.4.1. Where can I find more information and Java tools for Linux?
o Levente Farkas maintains Java RPMs and Java-Linux related links:
http://anna.inf.u-szeged.hu/java/java-rpm.html
o Freshmeat sometimes mentions new Java developments:
http://freshmeat.net/
o There's a GNU Java page:
http://www.gnu.org/software/java/java.html.
o A strong newcomer is How to do Java Development with Linux at
http://www.jlinux.org/.
2. About Blackdown Java for Linux
This section provides a brief overview of using the Blackdown Java
platform on Linux, including an introduction to the JDK itself, a
synopsis of system requirements for various editions of Blackdown
Java, and how to download the bits.
2.1. Questions about the JDK
This section introduces the core Java Developer's Toolkit to Java
newcomers.
Last update:
$Id: what-is-jdk.sgml,v 1.2 2000/01/06 11:35:56 stevemw Exp $
2.1.1. What is Sun's JDK?
Sun's JDK , or Java Developer's Toolkit, is a complete (if Spartan)
development environment supporting the Java programming language. If
you're new to Java, please see section ``What is Java?'' for an
introduction to the Java language.
The JDK includes the basic tools needed for developing and running
Java applications, including (among other things) the following:
o A Java Virtual Machine, or JVM. The virtual machine interprets and
executes Java byte codes (a more condensed, intermediate form for
Java instructions) inside a software-only machine. In other words,
the JVM emulates a hardware platform, including registers, program
counter, and so forth.
o A Java compiler, which takes a text file containing Java syntax and
transforms it into Java byte codes.
o An appletviewer for executing Java applet code.
o A Java debugger. Java 2 adds the JPDA, or "Java platform debugging
architecture" to improve debugging.
o Example Java programs.
o The Java class library, including platform-independent library
source.
o A tool for creating and managing Java security keys.
o A remote method stub and skeleton generator.
o A registry server for remote method invocations.
o C and C++ headers for extending the JVM with interfaces to native
code.
o Native libraries for the platform-dependent portions of the JVM,
including AWT layer above Motif and X11.
o Native libraries for embedding a JVM in other native applications.
o In Java 2, a JIT (just in time compiler) is available. JITs can
speed performance because they compile Java byte codes into native
executable regions of memory.
Note: consecutive versions of the JDK have historically included more
APIs than the previous ones. See http://www.javasoft.com/products/ for
more detail. Documentation for Java APIs is available separately from
Javasoft at http://www.javasoft.com/docs/.
For certain Blackdown distributions, there are static and dynamic
versions of the core Java binaries, as well as versions compiled with
and without debugging symbols. See section ``Support for the Java
Platform Debugging Architecture'' for more information about debugging
Java.
For information on the Blackdown JDK porting project itself, including
who the major contributors have been, please see section ``Who Ported
the Blackdown JDK?'' .
2.2. Questions about the JRE
This section introduces the JRE, or Java Runtime Environment to Java
users or developers who either need a smaller Java runtime for their
applications or only want to ship the smallest JVM possible when they
deploy their code as a complete application.
Last update:
$Id: what-is-jre.sgml,v 1.2 1999/12/30 12:01:41 stevemw Exp $
2.2.1. What is Sun's JRE?
With Java 1.1, Sun needed a way to distribute a JVM without shipping
tools for building Java classes. The JRE includes only what is
required for running Java applications, including a Java Virtual
Machine, the core API class libraries, and a set of default
properties.
2.3. An Overview of Using Blackdown Java
This section provides an overview of using Java on Linux, describes
the currently-supported version of the Blackdown JDK, discusses what
hardware is supported, and addresses the question of whether or not
Sun will support Java commercially. It's not easy to keep this section
updated, so please bear with us.
Last update:
$Id: overview.sgml,v 1.7 1999/12/31 10:50:58 stevemw Exp $
2.3.1. What can I expect from Blackdown Java on Linux?
You should be able to run most "pure Java" (see Sun's
http://java.sun.com/100percent/ page) applications on the Linux JDK or
JRE. It has tended to take longer to get the latest JDK ported to a
target (Linux) that Sun didn't officially support. Javasoft and
Inprise are jointly working to provide commercial support for Java on
Linux now. See section ``Is Javasoft Going to Support Java on Linux?''
for more information about Sun's announcement to support Java on
Linux.
For getting up and running with the Blackdown Java on your system as
soon as possible, see section ``How do I install the JDK?''.
2.3.2. What is the currently-supported version of Blackdown Java?
At the time of this writing, the latest supported Blackdown JDK
version is 1.1.8. Both Blackdown and Inprise have "RC" (release
candidate) distributions of 1.2.2 at the time of this writing.
Please see section ``Where do I obtain JDK 1.02, 1.1, and 1.2?'' for
places to download.
To determine your version, use this command:
______________________________________________________________________
$ java -version
______________________________________________________________________
Keep in mind that other Java virtual machines (JVMs) exist, so check
for a README.linux file in the root directory of the distribution to
ensure that it's Blackdown's.
2.3.3. For what other hardware architectures is Blackdown Java avail-
able?
Please see section ``Questions about Non-x86 Blackdown JDK Ports'' for
more information. Also, visit the Blackdown site and check on the
latest status of a given platform at http://www.blackdown.org/java-
linux/ports.html.
With Java 2, it's been very difficult for Blackdown developers to keep
up with the APIs and rapid development pace of Javasoft. Intel is
currently the first target to get completed in any typical Blackdown
development effort. More than ever before, Java 2 has showed the need
for a more standardized relationship between Sun and Blackdown. We
continue to ask for clarification on the developer recruiting process,
code and bug exchange schedule, and for formal rules for new developer
Java Compatibility Kit (JCK) access. For more on these issues, please
see section ``Blackdown's Position on Sun's Community Source
Policies''.
2.3.4. Under what license is Blackdown Java available?
Standard disclaimer: none of this is legal advice.
Java binaries are freely redistributable if they have passed a test
suite (see section ``Java Compatibility Kit''). If not, then they
must be clearly labeled as "release candidates."
J2SE (Java 2 "standard edition") source code is available through Sun
to those willing to agree to a license containing certain intellectual
property restrictions.
Changes to the original Java sources may be redistributed publicly.
Please see section ``How do I understand Java licensing?'' for more
information.
2.3.5. Is Javasoft going to support Java on Linux?
Finally, yes. Sun is working with Inprise to outsource portions of
this project. The December 7th, 1999 Inprise press-release is
available at http://www.inprise.com/about/press/1999/sunlinux.html.
It leads off with this statement:
Inprise Corporation (Nasdaq: INPR) today announced that it
has jointly produced a Linux version of the Java(tm) 2 Plat-
form, Standard Edition (J2SE), with Sun Microsystems. The
agreement enables programmers to develop and run applica-
tions based on the Java 2 platform and deploy them on Linux
workstations and servers, as well as simplify moving exist-
ing Java applications to the Linux operating system (OS).
2.3.6. Where can I find online reactions to the Inprise release?
In this December 9th, 1999 article
http://dailynews.yahoo.com/h/zd/19991209/tc/19991209113.html by ZDnet
reporter Steven J. Vaughan-Nichols, he states:
It was a press conference like any other press conference.
Sun announced that, in conjunction with Inprise, it was
releasing Java 2 Platform, Standard Edition (J2SE). What Sun
didn't mention, though, was that much of the work that lay
behind J2SE was done by the Linux Blackdown Porting Team, a
group of open-source programmers devoted to Java.
An article at http://www.computer-
world.com/home/news.nsf/all/9912083sunlinux by Computer World reporter
by David Orenstein quotes Blackdown's Karl Asha who said,
"As the Linux community goes, I suspect they'll follow the
most stable, most recent, and best-performing JDK [Java
Development Kit], regardless of who produces it."
and in a December 8, 1999 press release at http://www.java-
soft.com/features/1999/12/linux.html Sun acknowledges,
Blackdown has made significant advancements to the avail-
ability of Java technology for Linux," said Gina Centoni,
director of product marketing for Sun Microsystems. "Sun
would like to thank Blackdown for its ongoing efforts in
delivering Java technology on Linux. We look forward to con-
tinued collaboration with Blackdown with the common goal of
providing the Java 2 platform to the Linux community."
And in JINI-USERS posting #69 on December 8th 1999 in the thread Re:
Sun releases "its" JDK for Linux - a warning for SCSL licensees, Ken
Arnold said:
This matters to me, of course, because this stuff with the
JDK will affect people's ideas of what we will do with the
Jini technology. I can't promise no screwups, but I'm with
Dick Gabriel on this one -- If I see Sun stealing credit for
other people's work at this level, both my resignation and
protest will be in the same letter. We will give credit
where it's due. I think people who have seen us in action
(for example, at the Jini Community Summits) have seen this
happen.
I apologize for Sun's mistakes here, and promise that we
will do our best to avoid them in the future, especially on
the Jini project where we have the most control.
For more background on the Linux community's long-held hopes for full
Sun support for Java, see section ``History of the Blackdown Java
Effort''.
2.4. Blackdown Java for Linux System Requirements
Discussion of hardware and software requirements for Blackdown Java.
Last update:
$Id: requirements.sgml,v 1.1.1.1 1999/12/27 06:13:32 stevemw Exp $
2.4.1. What are the minimum system software requirements?
o A Linux operating system kernel:
o JDK 1.1.x: Kernel 2.0.37.
o JDK 1.2: Kernel 2.2.12-20.
o To run AWT, you'll need X11 up and running; most users run an
XFree86 X11 display server. See http://www.xfree86.org/ for
details.
o The appropriate C library:
o JDK 1.1.8: GNU glibc-2.0.7-7.
o JDK 1.2.2: GNU glibc-2.1.2-11.
o JDK 1.02 runs with libc-5.3.12-31 on recent systems.
RedHat package name/versions are given above. More information
about the GNU C library is found in section ``What is glibc, and
Why Does it Matter?''.
If you have the memory requirements suggested above, and you still
have fatal errors related to running out of memory, see section
``Help, Java Said it Ran out of Memory!'' for suggestions of flags to
pass to the JVM for setting memory and stack allocation limits. Java
uses a lot of memory, so be prepared to specify additional RAM in your
application deployment recommendations.
2.4.2. What are the minimum hardware requirements?
It depends on which version you run, but here are some actual numbers
taken from an x86 system. And Alpha, SPARC, and PPC platforms may have
different requirements.
o A supported platform running regular, 32-bit Linux is required.
Blackdown recommends a Pentium-class CPU at a minimum.
o You'll need a display card if you want to run X11 and AWT. You may
want to look into devices that support 3D, Mesa, and Linux at
http://www.mesa3d.org/. See section ``3D installation under RedHat
5.2'' for more information about setting up 3D with Blackdown Java.
o JDK 1.02
1. Memory
VSZ (k) ................................... 23,504
RSS (k) .................................... 4,376
2. Disk
(k) ....................................... 10,432
o JDK 1.1.8v1
1. Memory
VSZ (k) ................................... 26,720
RSS (k) .................................... 8,468
2. Disk
(k) ....................................... 40,091
o JDK 1.2.2 RC3
1. Memory
VSZ (k) ................................... 82,264
RSS (k) ................................... 17,600
2. Disk
(k) ....................................... 61,243
o Sound cards are supported but not required.
The system used to measure these examples was a 64MB P133 running
RedHat Linux 6.1 with a uniprocessor build of kernel 2.2.12-20; the
above numbers were produced by the ps(1) command while running the
ImageMap demo with appletviewer.
2.5. Downloading Blackdown Java for Linux
Help with downloading Blackdown Java.
Last update:
$Id: download.sgml,v 1.8 2000/01/11 06:50:20 stevemw Exp $
2.5.1. Where do I obtain JDK 1.02, 1.1, and 1.2?
Please visit http://www.blackdown.org/java-linux/mirrors.html and
select the site nearest you. Both Randy Chapman's JDK 1.02 and Steve
Byrne's JDK 1.1.x are found on participating mirror sites. Check
section ``What is the currently-supported version of Blackdown Java?''
for the currently supported version the Blackdown JDK.
2.5.2. How do I install?
See section ``How do I install the JDK?''.
2.5.3. What is the currently-supported version of Blackdown Java?
2.5.4. Which is the latest version?
For the latest status on a given JVM, check the Java-Linux Ports page
at http://www.blackdown.org/java-linux/ports.html
2.5.5. OK, which version of the JDK should I download?
This section describes the organization of the Blackdown distribution
mirror hierarchy. You may also be interested in reading section ``What
System Configuration do I Need to Run the JDK?'' before you decide
what to download.
After reading this, if you're still wondering which individual archive
to download, please see ``What are These Files?'' below.
2.5.6. JDK 1.02 Downloads:
This version of the Blackdown JDK is only supported on Intel. If you
know of other Linux platforms to which the JDK has been ported, please
tell the FAQ maintainer. Look for the mirror closest to you by
following instructions in section ``Where to obtain JDK 1.02, 1.1, and
1.2?''.
2.5.7. JDK 1.1 Downloads:
JDK 1.1.7 was the latest release to compile on all platforms. You may
need to visit http://www.linuxppc.org/java/ in order to obtain the PPC
version. Intel and ARM have support in 1.1.8. For the latest on Java
1.1, see section ``Information relevant to the Blackdown 1.1 JDK''.
Here's a view of the 1.1.7 directory:
o Alpha
................................ alpha/
o Intel x86
................................ i386/
o SPARC
................................ sparclinux/
o PowerPC
................................ mklinux/
o Patches to Javasoft Source, etc...
................................ common/
You may wish to read section ``What is glibc, and Why Does it
Matter?'' to help you understand which Intel JDK to download.
For an official description of the FTP site, look for an up to date
version of http://www.blackdown.org/java-linux/docs/faq/README/FTP, at
the top level of your closest mirror.
To just run the JDK, you don't need anything out of common/. Those
diff(1) files are for people who want to request free access to the
SPARC/x86 Solaris and i386 Win32 sources from Sun and help with the
port. See section ``Compiling the Blackdown JDK from Source'' for more
information.
2.5.7.1. What are these files in the FTP mirror directories?
By now, many readers are still wondering what each archive in the
mirror directories is. Below is a representation of what your favorite
web browser would have displayed if you were visiting a Blackdown JDK
mirror recently.
______________________________________________________________________
Current directory is
/pub/linux/devel/lang/java/blackdown.org/JDK-1.1.7/i386/glibc/v3
README.linux
i18n_1.1.7-v3-glibc-x86.tar.bz2
i18n_1.1.7-v3-glibc-x86.tar.gz
jdk_1.1.7-v3-glibc-x86-native.tar.bz2
jdk_1.1.7-v3-glibc-x86-native.tar.gz
jdk_1.1.7-v3-glibc-x86.tar.bz2
jdk_1.1.7-v3-glibc-x86.tar.gz
jre_1.1.7-v3-glibc-x86-native.tar.bz2
jre_1.1.7-v3-glibc-x86-native.tar.gz
jre_1.1.7-v3-glibc-x86.tar.bz2
jre_1.1.7-v3-glibc-x86.tar.gz
rt_1.1.7-v3-glibc-x86-native.tar.bz2
rt_1.1.7-v3-glibc-x86-native.tar.gz
rt_1.1.7-v3-glibc-x86.tar.bz2
rt_1.1.7-v3-glibc-x86.tar.gz
______________________________________________________________________
As a hypothetical user, you've already decided that your system is
based on glibc (perhaps by reading ``What is glibc, and Why Does it
Matter?''). Now you'd like to know what these four files do for you,
and which ones you should download.
1. jdk. The JDK contains everything you need to run Java, compile
Java, and debug java. It doesn't contain the international
character converters (see i18n).
2. jre. The JRE is the Java runtime environment, including the
international character converters.
3. rt. The Java RT is the minimal configuration you can have to run
Java. It doesn't contain any internationalization support.
4. i18n. This contains font mappings and a JAR file containing the
international character converters, and really doesn't need to be
split off by library type, but is anyway.
5. *native*. These are additional binaries that provide support for
native threads (according to command-line options and environment
variables).
For more about Blackdown Java 1.1, see section ``Information
relevant to the Blackdown 1.1 JDK.'', although most 1.1 information
is distributed throughout the FAQ.
2.5.8. When do I need extra *native* binaries?
All versions of Blackdown Java up through 1.1.7v3 required you to take
the extra step of installing a package of shared libraries containing
native the threads VM if you wanted to effectively run with the
-native flag. Blackdown Java 1.1.8 does not require you to unpack
anything special. See the section ``Is there a native threads port of
Blackdown Java?'' for a little more information.
2.5.9. JDK 1.2 Downloads:
At this time, only the sparclinux and i386 directories were populated.
Internationalization is included, as well as native threads support.
For more about Blackdown Java 2, see section ``Information relevant to
the Blackdown 2.x Java Ports''.
2.5.9.1. How should I download Java archives ending in .sh?
These are files that consist of a shell-script at the top and a ZIP
file containing the binary archive of the Java product you wish to
download. Please use binary mode.
2.5.9.2. How do I deal with downloaded files ending in .bz2?
These are bzip2 compression arcvhies. Please see The bzip2 and
libbzip2 Official Home Page at http://sourceware.cygnus.com/bzip2/ for
availability of precompiled bunzip2(1) executables (as well as source
code). However, you should have this on any contemporary distribution
of Linux.
2.5.9.3. Hey, why doesn't Blackdown use xdelta?
Several of you have requested that we supply XDELTA binary patches in
order to save download time. At the time of this writing, no one had
time to consider doing this extra step. However, we're looking for
volunteers to help with development, and if you were willing to work
on this sort of thing, it would be helpful.
For more information about XDELTA (it is cool), feel free to visit
http://www.xcf.berkeley.edu/~jmacd/xdelta.html.
3. The Various Blackdown Java Editions for Linux
Discussion of the various Blackdown builds of JDKs, Java APIs, and
related Blackdown-maintained tools for using Java on Linux.
3.1. Information relevant to the Blackdown 1.02 JDK.
Discussion of issues related to the first Blackdown JVM to be widely
available on Linux, version 1.02.
Last update:
$Id: jdk-1.0.sgml,v 1.1.1.1 1999/12/27 06:13:31 stevemw Exp $
3.1.1. What do I need to know about the Blackdown JDK 1.02?
It still works! Actually, if you have details about using this build
in your daily work, please report them to the FAQ maintainer.
See section ``Who Ported the Blackdown JDK?'', which credits Randy
Chapman, the one who got it all started (with encouragement from Karl
Asha).
3.2. Information relevant to the Blackdown 1.1 JDK.
Limited discussion of issues related to Blackdown 1.1 JVMs. You'll
find that most 1.1 material is present throughout the FAQ since this
incarnation of it (after Eric S. Raymond's) originated during an
intense period of Blackdown JDK 1.1 development.
Last update:
$Id: jdk-1.1.sgml,v 1.4 2000/01/06 11:35:55 stevemw Exp $
3.2.1. What is the latest 1.1 release? Does it support native
threads?
The last release to support all platforms was 1.1.7v3. It supports
native threads via command-line flags. The latest release for Intel
and ARM was 1.1.8 at the time of this writing.
See the section ``Is there a native threads port of Blackdown Java?''
for a little more information.
3.2.2. What about all those versions of 1.1?
In short, if you are on Intel, use 1.1.8 (or later if available by the
time you read this). On other architectures, the situation is
different. Here is a small compatibility chart:
o glibc-2.0 systems require JDK 1.1.7v1a and earlier.
o glibc-2.1 systems require JDK 1.1.7_v3 and later.
See ``OK, which version of the JDK should i download?'' for which
versions are supported on what platforms.
3.2.3. Where can I get SWING (JFC) for Java 1.1?
See http://java.sun.com/products/jfc/
3.2.4. Is there a JIT for Blackdown Java 1.1?
Not from Blackdown, but see section ``Just In Time Compilers for
Blackdown Java'' for other sources.
3.3. Information relevant to the Blackdown 2.x Java Ports
Discussion of running the latest version of Java from Blackdown.
Latest update:
$Id: jdk-2.0.sgml,v 1.6 2000/01/11 06:50:21 stevemw Exp $
This section describes Blackdown's 2.0 port of Java, currently being
termed "Java 2, Standard Edition," or J2SE by Sun.
3.3.1. When is the JDK 1.2 Going to be Released for Linux?
The Blackdown team has had the J2SE sources for over a year, and has
been actively working on porting it. Starting March 5th, 1999 several
J2SE "release candidates" (RCs) have been issued and are available
through the Blackdown mirrors. Visit http://www.blackdown.org/java-
linux/mirrors.html and download the latest.
Furthermore, http://www.inprise.com/ now has its own offering. See
``Is Javasoft going to support Java on Linux?'' for more information.
3.3.2. What about the libc compatibility and Blackdown Java 2?
At this point, you're best-off with a glibc-2.1.2-11 system (in RedHat
6.1 parlance) because new builds and tests are currently being done
only against that library, either on Debian or RedHat. It's not clear
that a builds couldn't happen for older libraries; they just aren't.
3.3.3. Will there be a patch for the latest Java 2 release candidate?
Juergen Kreileder <[EMAIL PROTECTED]> determines this
on a case by case basis. For example, 1.2.2 RC4 will have been issued
with a set of "diffs," despite a requirement for users to have the 1.3
sources and combine the 1.2 and 1.3 trees. Stay tuned to the mailing
list. See section ``What is a source patch?'' for the definition of a
patch.
3.3.4. How do I upgrade from libc2.0 to libc2.1 ?
Currently, glibc2.1.2 is required to run recent builds of Java 2 from
Blackdown. Look for information about upgrading at your favorite
distribution's website, but you may also discover answers the FSF
(Free Software Foundation's) GNU libc web site:
http://www.gnu.org/software/libc/libc.html. If you are on RedHat 6.1,
you already have it installed. For information specific to your
platform, including RedHat, see section ``Linux Distribution-specific
Questions''.
3.3.5. What does "Standard Edition" in the J2SE acronym mean?
With Java 2, Sun is splitting the Java product out into three targeted
environments:
1. Standard Edition (J2SE)
2. Enterprise Edition (J2EE)
3. Micro Edition (J2ME)
The standard edition is the core JVM with class libraries. The
enterprise edition has some of the other (apparently pure Java)
APIs glued into it including enterprise Java beans. The micro
edition is a range of options for supporting a smaller Java.
Blackdown Java 2 development is currently limited to the "standard
edition." See Sun's Java 2 Platform page for more about the three
different environments and J2SE documentation:
http://java.sun.com/java2/.
3.3.6. Does Swing (also know as JFC) come with the JDK 1.2?
Yes, the Java Foundation Classes come with the J2SE.
3.3.7. Is Sun's sunwjit just in time compiler working with JDK 1.2.2?
As of 1.2.2 RC3, sunwjit JIT compiler does still not work entirely
correctly, according to http://www.blackdown.org/java-
linux/docs/faq/README/1.2/README.linux.
3.3.8. Is Sun's HotSpot JIT being ported?
According to Juergen Kreileder <[EMAIL PROTECTED]> on
December 29th, 1999, he had begun work on this project.
See Javasoft's Java HotSpot Performance Engine page at
http://www.javasoft.com/products/hotspot/ for more information about
the HotSpot JIT (just in time compiler).
3.3.9. What about the new debugging interfaces for Java 2?
Please see section ``Support for the Java Platform Debugging
Architecture''.
3.4. Just In Time Compilers for Blackdown Java
This section discusses various "just in time" compilers (JITs) and
Blackdown Java on Linux.
Last update:
$Id: jits.sgml,v 1.4 1999/12/31 08:36:19 stevemw Exp $
3.4.1. Is there a JIT (Just in Time Compiler) for the Blackdown JDK?
There are several. Please take a look at Shudo Kazuyuki's references
in his Just In Time compiler for Sun Java Virtual Machine / x86:
shuJIT page at: http://www.shudo.net/jit/#refs for a comprehensive
list of pointers to JIT-related projects.
There are several others including these open-source projects:
o ShuJIT, Shudo Kazuyuki's contribution: http://www.shudo.net/jit/.
o TYA, by Albrecht Kleine <[EMAIL PROTECTED]>:
ftp://gonzalez.cyberus.ca/pub/Linux/java/.
o LaTTe: http://latte.snu.ac.kr/.
See section ``Information relevant to the Blackdown 2.x Java
Ports'' for more information about new features in Blackdown Java
2.0 builds, including its default JIT.
3.5. Other Vendors' Java Editions for Linux
This section describes a few of the vendors now supporting the Java
platform on Linux. It can never be as up to date as we would like, but
it can serve as a starting point if you're looking for more
information.
Last update:
$Id: other-vendors.sgml,v 1.2 2000/01/04 16:08:11 stevemw Exp $
3.5.1. What other vendors and individuals are supplying Java for
Linux?
This section of the FAQ is incomplete. Please visit
http://www.blackdown.org/java-linux/productlist.html for more detail.
o Inprise has a JVM and a JIT that run on Linux. See
http://www.inprise.com/ for more detail.
o IBM has several JVMs that run on Linux. See
http://www.ibm.com/developer/java/ for more detail.
o Japhar, an LGPL-based project. See http://www.japhar.org/ for more
detail.
o Kaffe, a GPL-based project. http://www.kaffe.org/ for more detail.
4. Blackdown-supported Java APIs
Discussion related to the plethora of Java APIs, only some of which
are currently supported on Linux.
4.1. The Gamut of Javasoft APIs Versus the Blackdown Ports
This section answers questions about APIs (application programming
interfaces) supported by various Blackdown ports.
Last update:
$Id: blackdown-apis.sgml,v 1.4 2000/01/06 11:35:55 stevemw Exp $
4.1.1. What Java APIs are supported?
Each Blackdown Java edition tries to support whatever were the core
APIs for that version of Java. For those details, see section ``The
Various Blackdown Java Editions for Linux''. One of the biggest
problems in Java 1.1 were threads, the interface to which consists of
an API in and of itself.
Here are a few of the APIs which are getting a lot of attention. We'll
add more information here when we have time.
o See section ``Threads and Blackdown Java'' for information about
the threading API and problems related to Linux and threads.
o For the Jini connection API, see section ``Blackdown Support for
Jini''.
o To find out more about the JVM extension for Netscape, see section
``Blackdown Java Browser Plugin''.
o The JNI API is discussed in section ``Blackdown Support for Java
Native Interfaces''.
o Support for Java's 3D API is treated in section ``Support for the
Java 3D API''.
o Talk about Java's new platform debugging architecture is found in
section ``Support for the Java Platform Debugging Architecture''.
o ``Support for Java Media Framework API''.
4.1.2. What is the latest status on a given API?
For the latest status on a given API, check the Java-Linux Ports page
at http://www.blackdown.org/java-linux/ports.html
4.2. Threads and Blackdown Java
This section discusses various issues with the java.lang.Thread API,
an area with a reputation of portability problems for Java. Blackdown
Java on Linux has had its share of gotchyas.
Last update:
$Id: threads.sgml,v 1.8 2000/01/11 06:50:23 stevemw Exp $
4.2.1. What are the two types of threads used in Java on Linux?
o Native threads. These are one-to-one threads, or threads with a
user space API backed by the kernel itself.
o "Green" threads. These are user level threads without explicit
kernel support. For more on these, see ``What are Green threads?''.
4.2.2. Are native threads on Linux limited in any way?
Yes, because the Linux kernel provides only a one to one mapping, the
thread model doesn't scale as far as hybrid user and kernel space
threading models such as LWPs on Solaris. However, one could argue
that the Solaris model itself is excessive, and that reasonable
applications should not expect to support thousands of threads at
once.
For a rough idea of how many threads your version of the kernel can
support per JVM, consider the total number of tasks your kernel has
been compiled to handle, and what your hardware can actually support.
Here's a canned identifier search in the latest stable kernel for
NR_TASKS using the Linux Cross-Referencer:
http://lxr.linux.no/ident?i=NR_TASKS.
4.2.3. Is there a native threads port of Blackdown Java?
Yes, in both 1.1.7 and 1.2.x. Phill Edwards added native threads
support to 1.1.7 support; the 1.1.8 native threads implementation has
been back-ported from 1.2.2. See section ``When do I need extra
*native* binaries?'' if you're wondering which distribution requires
you to unpack j*-native.tar.* files.
You can find more information about related command-line options and
environment variables in the http://www.blackdown.org/java-
linux/docs/faq/README/1.1/THREADS-117v1a and
http://www.blackdown.org/java-linux/docs/faq/README/1.2/README.linux
files that accompany binary Blackdown Java distributions.
4.2.4. What are Green threads?
Green threads use some magic with jmp_bufs, stack pointers, the
program counter, and some other hocus pocus to schedule different
instruction streams. This gives the practical effect of multi-
threading with some caveats about signals and how they're handled
across longjmp()s. See the discussion of native threads in section
``Is there a native threads port of Blackdown Java?''.
4.2.5. What about Green threads and console priority?
According to [EMAIL PROTECTED],
As of JDK 1.1.6 v5, Kevin fixed the STDIO (System.in/Sys-
tem.out/System.err) problem. In JDK 1.1.7 V1 it was fixed
even better for the poll() changes.
Previous discussion of this problem is included for people on older
JVMs.
Jon Waette <[EMAIL PROTECTED]>, has a brief synopsis of Green threads
at http://www.zilker.net/~hplus/jvm.html. He states:
Sun's Java VM as running on Solaris [without the native
threads package] used a user-level thread package named
Green Threads. This is strictly a collaborative threading
package; the JVM is one system process and only executes one
Java code stream at a time.
This is convenient for implementors, because special
operations that required nobody else to touch sensitive data
are intrinsically protected. As long as you don't relinquish
the CPU (and block signals) you're in no danger.
If you do a [System.in.readLine()], the JVM will sit in the
blocking input call until input is available; nothing else
will happen in your program.
Bernhard Bablok <[EMAIL PROTECTED]> has this suggestion:
[The] System.in.readLine() [method] won't block other
threads, if their priorities differ. My experience is, it
doesn't matter which threads have a higher/lower priority.
Priority shouldn't be much lower than Thread.NORM_PRIORITY
(much lower means two lower on Linux).
4.2.6. Is there a problem with Green threads and the JVM invocation
API?
Yes, there's a known problem with Javasoft's user-level threads
package (called Green threads) and the Invocation API because of the
way it wraps system calls. Note that there is native thread support in
the current JDK. See section ``Is there a native threads port of
Blackdown Java?''.
4.2.6.1. Green Threads and Wrapped System Services
Uncle George, Juergen Kreileder, and Bernd Kreimeier have encountered
this problem, and through their discussion of it we have this list of
references to consult for more information:
o JDC Bug Parade bug ID at
http://developer.java.sun.com/developer/bugParade/bugs/4040743.html
o The Java Tutorial under "Invoking the Java Virtual Machine" at
http://java.sun.com/docs/books/tutorial/native1.1/implementing/
o Rob Gordon's excellent Essential JNI published in 1998 by Prentice
Hall PTR, ISBN 0-13-679895-0
Gordon suggests in Essential JNI on page 260 that:
When building a Java-enabled application on Solaris and
linking against the Green threads version of libjava.so, you
must defer system calls until after the call to JNI_Create-
JavaVM. This is because the user-level threads package in
libjava.so (Green threads) defines its own system calls . .
.
And the JDK 1.1 Tutorial suggests that, "The first step toward getting
this to work is always to link libjava.so into the executable *first*,
even before libc.so . . ."
4.2.6.2. Hacking Around the System Service Wrappers
On June 21, 1998 Uncle George <[EMAIL PROTECTED]> posted these
paraphrased comments:
Actually, library calls are overridden, not system-calls. If
you are savvy enough, you can call the system service your-
self, and forget the library interface (i.e. instead of
using select, try __select). But in doing so, the green
threading . . . can be compromised, i.e. other threads won't
be runnable until that service completes.
The malloc()/free() bogus pointer messages are problems in
trying to free a pointer twice, of which some "MALLOC"
packages get terminally upset with . . .
You may also be interested in the discussion of native threads in
section ``Is there a native threads port of Blackdown Java?''
4.2.7. Where can I find more information about threads on Linux?
See the Linux Threads Library page at
http://pauillac.inria.fr/~xleroy/linuxthreads/ for FAQs,
documentation, and source for the native threads API used in Blackdown
Java.
4.3. Blackdown Support for Jini
This section discusses Blackdown support for Jini, a distributed API
intended for "ubiquitous computing" with Java-enabled devices.
Last update:
$Id: jini.sgml,v 1.2 1999/12/31 08:36:19 stevemw Exp $
4.3.1. Does Blackdown Java support the Jini API?
Yes, but you need to be using Java 2, preferably a recent build.
On September nine, 1999, Blackdown developer Cees de Groot
<[EMAIL PROTECTED]> had this to say:
I'm using it and it works. What's more to say?
If you are having problems, check three things:
1. Multicast support in the kernel (>=2.0.37);
2. The correct multicast route in your routing table (dest=224.0.0.0
mask=240.0.0.0 dev=eth0);
3. No multicast routing support in the kernel (I have the suspicion
that this interferes with looping back local mc packets that are
leaving the box).
I have seen RMID crashing after running a while on the JDK 1.2 pre-
release builds, you probably want to disable the JIT for the RMID
(this could also be due to the fact that I'm running the RMID on my
SMP box, though).
4.3.2. Where can I find out more about Jini?
o See Javasoft's page on the web
http://www.javasoft.com/products/jini/.
o You can browser the JINI-USERS mailing list at
http://archives.java.sun.com/archives/jini-users.html.
o The Jini community website (put up by Sun as an outreach to
community source users) is at http://www.jini.org/.
4.4. Blackdown Java Browser Plugin
This section describes Blackdown support for the Internet browser
"plugin" for adding a given JVM to Netscape.
Last update:
$Id: browser-plugin.sgml,v 1.3 2000/01/06 11:35:55 stevemw Exp $
4.4.1. Is there a browser plugin for standard Java support?
Blackdown now has access to the source for the 1.2 version of the
plugin, has made an initial RC (release candidate), and intends to
continue to develop it. See the Java-Linux Ports page at
http://www.blackdown.org/java-linux/ports.html for its current status.
4.4.2. Where can I read more about Sun's Java plugin products?
See http://www.javasoft.com/products/plugin/.
There is a FAQ page at Javasoft, as well:
http://www.javasoft.com/products/plugin/plugin.faq.html.
4.4.3. What needs to be done to add plugin support to HTML pages?
Amit Patel <[EMAIL PROTECTED]>, who has been working on HTTP
proxies answers:
The Java Plug-in requires that web page authors make changes to their
existing HTML code if they wish to have their JDK 1.1-based applets
run using the Java Plug-in, rather than the browser's default Java
runtime. While the changes are not trivial, they are not overly
complex either.
To make this process easy for web page authors, Sun provides the Java
Plug-in HTML Converter, free of charge, to automate this process. In
addition, Sun has provided a detailed specification outlining the HTML
changes required to use the Java Plug-in, and how web page authors can
implement them "by hand". The Java Plug-in HTML Converter can be
downloaded from the HTML Converter download page. For the HTML
specification, see the Java Plug-in HTML Specification.
4.4.4. What does the Java Plug-in HTML Converter do?
Again, Amit Patel <[EMAIL PROTECTED]>, answers:
The Java Plug-in HTML Converter provides both a default template
(default.tpl), and three supplementary templates. These supplementary
templates allow web page authors to more explicitly target the
browsers and platforms used in their environment when modifying their
pages using the Java Plug-in HTML Converter:
1. default.tpl: The default template used by the Java Plug-in HTML
Converter. The converted page can be used in Internet Explorer and
Navigator to invoke the Java Plug-in on the supported platforms.
2. extend.tpl: The converted page can be used in any browser on any
platform. If the browser is Internet Explorer or Navigator on
Windows 95, Windows NT, or [some UNIX-like OS such as Linux], Java
Plug-in will be invoked. Otherwise, the browser's default Java
runtime is used.
3. ieonly.tpl: The converted page can be used to invoke Java Plug-in
in Internet Explorer on the supported platforms.
4. nsonly.tpl: The converted page can be used to invoke Java Plug-in
in Navigator on the supported platforms.
4.5. Blackdown Support for Java Native Interfaces
This section describes Blackdown support for accessing native code
through the JNI API.
Last update:
$Id: native-interfaces.sgml,v 1.9 2000/01/11 06:50:21 stevemw Exp $
4.5.1. How does JNI work with Blackdown Java?
This section is under construction. Recent mailing list traffic would
indicate that there are major C library transition issues affecting
JNI portability and general functionality.
o JDK 1.0. Presumably the older JNI API worked, but no historical
information was forthcoming at the time of this writing.
o JDK 1.1. See section ``Information relevant to the Blackdown 1.1
JDK.'' for the latest updates.
o JDK 1.2. Again, see section ``Information relevant to the Blackdown
2.x Java Ports''.
4.5.2. Why should I be interested in Native Interfaces on Linux?
o Code written well for Linux can be portable across most BSD and
SYSV-derived systems.
o There are times when having the source for your JVM is invaluable
when you are developing a JNI.
o Debugging your problem can be easier with an entirely open-source
toolchain.
o Affordable hardware and operating system software.
o There's a large community of dedicated developers.
4.5.3. Is there anything different about native interfaces on Linux?
Not really. The compilation flags may need to be different from what
Javasoft recommends in the Solaris-oriented documentation.
Juergen Kreileder <[EMAIL PROTECTED]> points out that
with the new Native Threads package, you should add the -D_REENTRANT
flag to your other options. Pointers to more information about the
native threads pack is available in section ``Is there a native
threads port of Blackdown Java?''.
Keep in mind that there has been a known problem with all green
threads implementations and the JVM Invocation API, discussed in
section ``Is There a Problem with Green Threads and the JVM Invocation
API?''.
There have been reports of problems with C++ IOStreams using
libstdc++-2.7.x. Note that g++-2.8.1 and libstdc++-2.8.1 have been
tested, and seem to work fine for several users on RedHat 5.0.
4.5.3.1. Compiling Library Code for JNI
We've provided a couple of rudimentary examples (including Makefiles)
below. They all assume that you have the JDK installed in
/usr/local/java/jdk. These worked with both JDK 1.1.8 and 1.2.2RC3 on
RedHat 6.1 i386, with the egcs-1.1.2-24 and egcs-c++-1.1.2-24 packages
installed.
o For a small C example, see: http://www.blackdown.org/java-
linux/docs/faq/examples/jni-in-C/
o And for a small C++ example, see: http://www.blackdown.org/java-
linux/docs/faq/examples/jni-in-C++/
o And for a small C++ Invocation example (JDK 1.2.x only), see:
http://www.blackdown.org/java-linux/docs/faq/examples/invocation-
in-C++/
Examples like these can be found in chapter two, Getting Started of
Sheng Liang's The Java Native Interface: Programmer's Guide and
Specification in the Java Series published by Addison Wesley in 1999
(ISBN 0201325772). You can find more elaborate examples at the book's
web page here: http://java.sun.com/docs/books/jni/.
4.5.4. How can I step into native methods used by the JVM?
When you run java_g, the environment variable $DEBUG_PROG can be used
to specify a debugger to use. For more about this topic, pick up a
copy of Rob Gordon's Essential JNI published in 1998 by Prentice Hall
PTR, ISBN 0-13-679895-0 and look at chapter 14, "Debugging Native
Methods."
4.5.5. Where are some good online references for JNI on Linux?
o David Dagon has a partially-complete reference for JDK 1.1.7 on
Linux at: http://www.mindspring.com/~david.dagon/jni/Native.txt.
Note: this was last dated November 30, 1998.
4.6. Blackdown Support for the Java 3D API
This section describes Blackdown support for the Java 3D API.
Last update:
$Id: 3d.sgml,v 1.1.1.1 1999/12/27 06:13:31 stevemw Exp $
4.6.1. Does the Java 3D API work with Blackdown Java?
Although the information in the FAQ may be outdated by the time you
read it, it was still under development at the time of this writing.
Java 3D requires Java 2. Second, Blackdown has only built it for i386
(at the moment). Work continues. See the JDK 1.2 Status Page at
http://www.blackdown.org/java-linux/jdk1.2-status/ for the latest, as
usual.
To read more about Java 3D, see Sun's website at:
http://www.javasoft.com/products/java-media/3D/index.html.
4.6.2. How do I install the 3D package if I'm on RedHat 5.2?
Kenneth W Flynn <[EMAIL PROTECTED]> posted this explanation:
3D installation under RedHat 5.2
1. Download and install the Java3D package as suggested:
java3d1_1_1pre-v1-linux-sdk_tar.bz2.
2. If you do not already have them, you will also need the Mesa 3D
Graphics Library at http://www.mesa3d.org/.
3. Download Version 3.0, and compile it. Copy the libraries from
.../Mesa-3.0/lib to /usr/lib or your favorite library location that
ldconfig can find.
4. Do an ldconfig -v to make those libraries available.
The following is also needed to get Java working, but as a newbie,
I had to go hunting for this information, so it bears repeating.
These workarounds are listed on the known-bugs page:
http://www.blackdown.org/java-linux/jdk1.2-status/known-bugs.html.
5. You will need the URW fonts as suggested on the Blackdown homepage.
Do a Save As on the link marked 'here' on the following page:
http://www.gimp.org/fonts.html.
Unbundle this software, and copy it to your X11 URW fonts
directory, which for me is:
cp URW/* /usr/lib/X11/fonts/URW/
You also need to update your XF86Config file's font section to match
the one shown on the webpage; then restart X.
I had many of the fonts here, but I just did the bulk copy to make
sure I had all of them. I guess you could pick and choose if you were
bored.
6. You will also need to create a symbolic link to the libstdc++
library.
ln -s /usr/lib/libstdc++.so.2.8.0 /usr/lib/libstdc++-libc6.0-1.so.2
Hopefully, Java 3D now works. :)
4.7. Support for the Java Platform Debugging Architecture
Discussion of Blackdown support for Java Platform Debugging
Architecture (JPDA) API, as well as general debugging issues for Java
on Linux.
Last update:
$Id: jpda.sgml,v 1.3 2000/01/06 11:35:56 stevemw Exp $
4.7.1. Is the JPDA supported with recent Blackdown JVM 1.2 builds?
Basic JPDA support has been added with 1.2.2. With RC4, full support
will be available, including JPDW (the Java debug wire protocol) and
JDI (the Java virtual machine debug interface). We hope to add more
documentation specific to Linux about this soon, but for now, please
visit Sun's site at http://www.javasoft.com/products/jpda/.
4.7.2. How can I use a debugger to examine native methods used by the
JVM?
See section ``How can I step into native methods used by the JVM?'',
which may offer some help.
4.8. Blackdown Support for Java Media Framework API
This section describes Blackdown support for the JMF, or Java Media
Framework API.
Last update:
$Id: jmf.sgml,v 1.1.1.1 1999/12/27 06:13:32 stevemw Exp $
4.8.1. Is the Java Media API ported to Java on Linux?
Blackdown developers have been working with Sun to stay current with
JMF sources, We hope to add more information about this soon, but for
now, please see
http://www.blackdown.org/java-linux/jdk1.2-status/ for more
information.
To learn more about the JMF in general, Sun's site is at:
http://www.javasoft.com/products/java-media/jmf/.
4.8.2. Is there a pure-Java implementation of the JMF?
On September eight, 1999, Amith Yamasani <[EMAIL PROTECTED]> had this
to say:
You can use the JMF1.1 All-Java version on Linux. There is no separate
Linux build and the Solaris build cannot be used on Linux. The all-
java version does not support some formats that require native
libraries (such as Indeo, MPEG and so on). Please see the JMF 1.1
documentation page for a list of supported content-types and codecs.
You can also try out the JMF 2.0 beta release (all-java) version. It
has support for more codecs than JMF 1.1 and includes a pure java MP3
decoder.
[Amith claims you can obtain these files at
http://java.sun.com/products/java-media/jmf/.]
5. Running Blackdown Java on Linux
This section discusses aspects of running Blackdown Java on various
Linux distributions in detail. Because Blackdown developers have
tended to use RedHat and Debian exclusively, mailing list participants
are encouraged to contribute as much as they can to this section.
5.1. Blackdown Java Installation Questions
Discussion related to installing Blackdown Java on various versions of
Linux.
Last update:
$Id: install.sgml,v 1.2 1999/12/30 12:01:39 stevemw Exp $
5.1.1. How do I install the JDK?
This section addresses installs for JDK 1.1.x, but the same principles
apply on other versions.
1. Download the tar(1) archive for your platform as directed by the
mirror list mentioned in section ``Where do I obtain JDK 1.02, 1.1,
and 1.2?''.
2. Move to an appropriate directory and for example, unpack the tar(1)
archive as follows:
___________________________________________________________________
$ cd /usr/local
$ tar zxvf /tmp/jdk1.1.6.tar.gz
___________________________________________________________________
3. Make sure your DISPLAY environment variable is set, put the
resulting directory into your execution path, and try something:
___________________________________________________________________
$ export DISPLAY=:0
$ export PATH=/usr/local/jdk1.1.6/bin:$PATH
$ appletviewer \
/usr/local/jdk1.1.6/demo/awt-1.1/lightweight/OpenlookButtons/example.html
___________________________________________________________________
Note that the above examples assumed you were using the Bash shell,
such as /bin/bash. Also note that if you already have a CLASSPATH set,
you'll probably want to append .:/usr/local/jdk1.1.6/lib/classes.zip:
to that environment variable. This ensures that you have the current
working-directory in your class search path, and makes things much
easier for you as you test your code.
Of course you may want to add these environment commands to your
shell's startup script, such as $HOME/.bashrc.
Some people may wish to set JAVA_HOME themselves. That way, you can
change all commands following setting that to use it instead, such as
______________________________________________________________________
$ export JAVA_HOME=/usr/local/jdk1.1.6
$ export PATH=$JAVA_HOME/bin:$PATH
$ export CLASSPATH=.:$JAVA_HOME/lib/classes.zip
______________________________________________________________________
To verify your install, use this command:
______________________________________________________________________
$ java -version
______________________________________________________________________
5.1.2. Why doesn't Blackdown supply .deb or .rpm packages?
It's simply a lack of time. Volunteers are welcome to roll and offer
their own.
5.2. Linux Distribution-specific Questions
Discussion related to specific Linux distributions.
Last update:
$Id: dist-specific.sgml,v 1.4 2000/01/05 18:13:34 srh Exp $
5.2.1. What distributions of Linux support Blackdown Java?
Although we currently have more information about running Blackdown
Java on RedHat Linux for x86, many other platforms are running the
bits. Please contribute what you know to the FAQ.
o Debian. See section ``Blackdown Java on Debian''. (Please
complete!)
o RedHat. See section ``Blackdown Java on RedHat''.
o Slackware. See section ``Blackdown Java on Slackware''. (Please
complete!)
o SuSE. See section ``Blackdown Java on SuSE''. (Please complete!)
5.2.2. I'm on <your favorite Linux distribution here> what do I need?
5.2.2.1. Missing libXp
There are some problems that have been common to various platforms of
Linux. From the README file:
The JDK now depends on having the X printing library, libXp
installed with the rest of your X files. This is part of the
most recent X11 distributions, so you'll need to upgrade
(or, if you are daring, you can just extract the libXp.so*
file from the upgrade package for your Linux distribution
and install it by hand w/o upgrading everything else,
although this is unlikely to work if your X libraries are
substantially out of date).
5.2.2.2. The glibc versus libc5 Problem
The latest versions of the Blackdown JDK 1.1.x have their own built-in
loader (libdl.so) and libc.so, which will hopefully make them more
robust in most cases. Older versions of the JDK 1.1.5 (especially) are
much more sensitive. Take a look in $JAVA_HOME/i386/green_threads/ to
see these files. (You may remove them if you feel they are a source
of trouble to you.) Karl Asha maintains a list of JDK-related library
issues at: http://www.blackdown.org/java-linux/docs/libraries.html.
In short, you need glibc-2.0.7 and glibc-devel-2.0.7 or higher on a
glibc-based system such as RedHat 5.0 or Debian 2.0. There are RPMs
for these on RedHat Intel systems at
ftp://ftp.redhat.com/pub/redhat/current/updates/i386 or
ftp://ftp.redhat.com/pub/redhat/updates.
For more information about Blackdown Java on RedHat, see section
``Blackdown Java on RedHat Linux''.
For a libc5 system, you need libc.so.5.44 or greater, along with a
recent libdl.so. You can find these at
ftp://tsx-11.mit.edu/pub/linux/packages/GCC.
For an in-depth discussion of this issue, see section ``What is glibc,
and Why Does it Matter?''.
5.3. Blackdown Java on Debian GNU/Linux
This section will hopefully include information about running
Blackdown Java on Debian GNU/Linux.
Last update:
$Id: debian.sgml,v 1.1.1.1 1999/12/27 06:13:31 stevemw Exp $
5.3.1. Does Blackdown Java work on Debian?
Yes, but you need to be running a version that has the libraries you
need.
For now, please see http://www.debian.org/ for more information.
You're welcome to contribute what you know to the FAQ.
5.4. Blackdown Java on RedHat Linux
This section provides information about running Blackdown Java on
RedHat Linux, the most popular distribution of Linux to date.
Last update:
$Id: redhat.sgml,v 1.1.1.1 1999/12/27 06:13:32 stevemw Exp $
5.4.1. Does RedHat Linux support Blackdown Java?
It depends on which release and which version of a particular package,
but yes, several of the developers run Blackdown Java on their RedHat
systems.
5.4.2. RedHat Blackdown Java Installation Tips
If you're on RedHat 5.2 and older, download the glibc and ld updates
described under http://www.redhat.com/support/docs/errata.html. In
any case, it is advisable to stay as current as possible with the
RedHat errata.
5.4.2.1. RedHat RPM Availability
According to Sorin Lingureanu <[EMAIL PROTECTED]>, JDK RPMs are to be
found in ftp://ftp.redhat.com/pub/contrib. Levente Farkas has more
information about running the Blackdown JDK on RedHat here:
http://anna.inf.u-szeged.hu/java/java-rpm.html.
5.4.2.2. RedHat/RPM Environment Variable Issues
In addition to the general problems described in section ``Environment
Variables'', make sure that you don't have conflicting JDK_HOME,
JAVA_HOME, and CLASSPATH environment variables set from scripts
sourced from /etc/profile.d/ at login. This can especially be a
problem when trying multiple versions of the JDK in succession.
5.4.3. What do I need to do in order to run Blackdown Java 1.2.x?
We assume you've read section ``Blackdown Java for Linux System
Requirements'' and you know you need to upgrade your system.
You'll have to be running RedHat 6.x. The RedHat 6.1 i386 upgrade
mechanism worked for the FAQ editor, who was running an updated
version of RedHat 5.2.
1. Back up your system.
2. Boot off the RedHat CD or floppies.
3. Follow instructions to update your OS and related packages. Select
the option to install the 5.2 compatibility libraries. This may
(or may not) help with older Java packages.
4. Check your font path. RedHat 6.x uses the font server, but your old
/etc/X11/XF86Config file will continue to use the filesystem. Make
sure your font path includes the contents suggested in the new
/etc/X11/fs/config file. (See section ``What's wrong with my font
server?'' for more information.
5. Update your system with the latest goodies from
ftp://updates.redhat.com (see the RedHat errata mentioned in
section ``RedHat Blackdown Java Installation Tips'').
5.4.4. Does RedHat support TrueType Fonts?
Yes, as of 6.0. Please see
http://www.redhat.com/support/manuals/RHL-6.0-Manual/install-
guide/manual/doc012.html. For more information about TrueType on X11,
see ``Will the Situation with TrueType Fonts Get Better?''.
5.4.5. What's wrong with my font server?
If you've chosen to "upgrade" your RedHat system to 6.x, the font
server, and hence, TrueType fonts, won't work by default. You want to
follow the instructions for working around this found in the Redhat
Install Guide mentioned above. Here's the explanation of what to do
from the section "Miscellaneous New Features."
Please Note: Those of you who upgrade will not have this
feature until you edit your fontpaths. To do this you must
edit the /etc/X11/XF86Config file. Scroll down until you see
fontpaths listed. Replace them all with FontPath
``tcp/localhost:7100''. You must also verify that xfs, the X
Font Server, is running. By issuing the command /sbin/chk-
config --add xfs you will insure that it starts at system
boot time.
5.5. Blackdown Java on Slackware Linux
This section will hopefully include information about running
Blackdown Java on Slackware Linux, one of the earliest distributions.
Last update:
$Id: slackware.sgml,v 1.1.1.1 1999/12/27 06:13:32 stevemw Exp $
5.5.1. Does Blackdown Java Work on Slackware?
For now, please see http://www.slackware.com/ for more information.
You're welcome to contribute what you know to the FAQ.
5.6. Blackdown Java on SuSE Linux
This section will hopefully include information about running
Blackdown Java on SuSE Linux, a distribution with strong commercial
support from Europe.
Last update:
$Id: suse.sgml,v 1.2 1999/12/30 12:01:41 stevemw Exp $
5.6.1. Does Blackdown Java work on SuSE?
For now, please see http://www.suse.com/ for more information.
You're welcome to contribute what you know to the FAQ.
5.7. Questions about x86 Blackdown Java Ports
Information about ports to processors compatible with the x86
instruction set. For now, most x86 information is strewn around the
FAQ, but as issues clearly in this category arise, we will put them
here.
Last update:
$Id: x86.sgml,v 1.2 1999/12/31 10:50:59 stevemw Exp $
5.7.1. Intel-specific Issues
Intel (i386) processor port information.
Last update:
$Id: i386.sgml,v 1.3 1999/12/31 10:50:57 stevemw Exp $
Nothing for this section yet.
5.7.2. AMD-specific Issues
AMD processor port information.
Last modified:
$Id: amd.sgml,v 1.2 1999/12/31 10:50:56 stevemw Exp $
Nothing at this time.
5.7.3. Cyrix-specific Issues
Cyrix processor port information.
Last modified:
$Id: cyrix.sgml,v 1.2 1999/12/31 10:50:57 stevemw Exp $
Nothing at this time.
5.8. Questions about Non-x86 Blackdown Java Ports
This section attempts to provide some additional information about
non-Intel versions of the Blackdown JDK. At this time, Karl Asha has a
more complete catalog of the different platforms available at
http://www.blackdown.org/java-linux/ports.html. Help determining
which JDK to download is available in section ``OK, which version of
the JDK should i download?''.
Last update:
$Id: non-i386.sgml,v 1.5 1999/12/30 12:01:40 stevemw Exp $
5.8.1. Alpha Issues
Alpha processor port information.
Last modified:
$Id: alpha.sgml,v 1.1 1999/12/29 07:53:30 stevemw Exp $
5.8.1.1. Is there an Alpha Port?
Yes, there have been (several 1.1 builds). Please see
http://www.blackdown.org/java-linux/ports.html for more information.
Uncle George, Uncle George <[EMAIL PROTECTED]>, also has Alpha ports
for download at http://www.voicenet.com/~gatgul/Java.html.
Unfortunately, there isn't any current Alpha information at the time
of this writing.
5.8.2. Arm Issues
Arm processor port information.
Last modified:
$Id: arm.sgml,v 1.2 1999/12/30 12:01:39 stevemw Exp $
5.8.2.1. What is the status of the Arm ports?
On December 28th, 1999, Scott Hutinger <[EMAIL PROTECTED]>
offered this informal status report:
Arm is in limbo currently.
He did say that with time and resources, Blackdown developers would
like to pursue the following:
o Running 1.2 JCK on the 1.1.8 port looking for glibc-related
problems.
o Working on getting some kind of a JIT up and running for 1.2.
5.8.3. PPC Issues
PowerPC processor port information.
Last update:
$Id: ppc.sgml,v 1.3 1999/12/31 10:50:58 stevemw Exp $
5.8.3.1. Is there a PowerPC Port?
There has been for some time. Please see
http://khendricks.ivey.uwo.ca/linuxppc/jdk/ for more information.
5.8.4. SPARC Issues
SPARC processor port information.
Last update:
$Id: sparc.sgml,v 1.6 2000/01/06 11:35:56 stevemw Exp $
5.8.4.1. What's the status of the SPARC Port?
Note: this section needs updating.
Our Java 1.1 information is rather dated, but see section ``What is
the currently-supported version of Blackdown Java?'' for details
about the latest supported build.
On June 16, 1998 Johan Vos <[EMAIL PROTECTED]> provided this summary
of the current SPARC effort, which is based at
http://tinukai.sesuadra.org/~jdk/:
Starting from JDK 1.1.5, the Intel and SPARC ports are based
on the same code. The SPARC-specific issues are separated
from the other linux-specific issues. Improvements and bug-
fixes in the general source code can be implemented without
having to re-implement the SPARC-specific code.
As a consequence, most problems and updates on the Intel-JDK
also occur on the SPARC-JDK. I try to synchronize as much as
possible with Steve [Byrne]'s ports -- although licensing
problems caused the JDK 1.1.6v1 release for SPARC to be a
few days after the Intel-release.
Johan follows up on 11/09/1998 with this comment:
[The] JDK for sparclinux systems currently only exist for
libc 5 systems. I am working on a port for glibc, but this
will be a jdk 1.2 port. . . .
5.8.4.2. What is the status of the Blackdown Java 2 for SPARC?
On December 28th, 1999, Eddie C Dost <[EMAIL PROTECTED]> wrote:
Sparc does want to support HotSpot, as there is no other JIT available
for Sparc Linux at current. So far things look quite good. Porting to
i86 should be ok, other archs are harder to get.
Sparc is doing quite well, there where some kernel problems with
floating point on Ultra Sparc, and some kernel related signal
problems, but these are fixed in the latest 2.2.x and 2.3.x kernels.
With these Sparc happily passes the JCK so far at least on RedHat
systems (other platforms should be tested soon, problems expected are
minor).
5.8.4.3. Does a SPARC JIT exist for 1.2?
On December 28th, 1999, Scott Hutinger <[EMAIL PROTECTED]>
pointed out that code for a SPARC JIT 1.1 does exist, although it's
Solaris specific, pointing us at the LaTTe: A Fast and Efficient JVM
JIT page at http://latte.snu.ac.kr.
He mentioned that Blackdown SPARC developers are interested in LaTTe
as well as the HotSpot JIT from Sun. See section ``Is Sun's HotSpot
JIT being ported?'' for the latest information on general HotSpot
support in Blackdown Java.
6. Troubleshooting Blackdown Java on Linux
This section attempts to answer your initial questions when you're
trying to solve problems with Blackdown Java.
6.1. Troubleshooting and Reporting Bugs in Java on Linux
This section offers help for people trying to help themselves deal
with Blackdown Java when it's broken.
Last update:
$Id: solving.sgml,v 1.8 2000/01/11 06:50:22 stevemw Exp $
6.1.1. What should I consider when troubleshooting Java on Linux?
o Does your system hardware and software satisfy the minimum
requirements? See section ``What System Configuration do I Need to
Run the JDK?''.
o Are you running the current version? You can find that information
in section ``What is the currently-supported version of Blackdown
Java?''.
o Have you checked to see if your libc, glibc, and X11 libraries
could be the problem? See section ``Linux Distribution-specific
Questions''. If you learn something we can add to there, please
post them!
o Environment Variables.
Here are the top candidates for problems:
o CLASSPATH
Should either be unset or start with .:$JAVA_HOME/lib/classes.zip.
o PATH
Should include $JAVA_HOME/bin -- ahead of /usr/bin where the Kaffe
JVM often lives, please!
o JAVA_HOME
This should be set to your top-level JDK directory.
o JDK_HOME
Although the JDK doesn't need this, it ought to be set to your top-
level JDK directory (if at all). HotJava uses this environment
variable, as do other packages other than the JDK.
o Are all the required X11 fonts installed?
This is a subtle area of concern. People have experienced crashes
from not having 75dpi fonts installed.
o Are your font and localization properties correct?
Another area that is difficult to troubleshoot. I hope to add more
information here soon!
For more information about the Kaffe JVM, see
http://www.kaffe.org/.
6.1.2. Kaffe and the Blackdown JDK 1.1 are Installed. Neither Work!
If you have the Kaffe JVM installed, you may see something like this:
javac HelloWorld.java
and seeing this message:
Failed to open object 'HelloWorld/java'
Other people have reported error messages such as these:
$ javac
Failed to locate native library in path:
/usr/lib
Aborting.
Daniele Lugli <[EMAIL PROTECTED]> reports:
...The javac which was giving the problem was /usr/bin/javac,
that is the kaffe javac. Now that I moved $JAVA_HOME/bin
ahead in my $PATH, both javac and java work, and I see a
wonderful "Hello, World!".
Always check for conflicting environment variable problems. For
details on how to do this, see section ``Environment Variables''.
A very common cause for problems with Kaffe is having /usr/bin in your
path ahead of $JAVA_HOME/bin.
6.1.3. I Have the Blackdown JDK 1.1.x and RMI is Giving Me Fits!
Rich McClellan <[EMAIL PROTECTED]> reports that running the
Blackdown JDK 1.1.5v7libc works better than the glibc version, and
forwards this advice from Alexander V. Konstantinou
<[EMAIL PROTECTED]>:
The problem is related to naming in /etc/hosts. This is a
known Java problem in picking up the right name for the
interface. Change the localhost name to your real machine
name. This may cause problems with talk though ...
6.1.4. I've upgraded to ld.so-1.9.9 on Slackware and now Java core-
dumps!
Slackware JVM 1.1.x users have found that removing the libdl.so.* and
libc.so.* files from $JAVA_HOME/lib/i386/green_threads takes care of
this problem. We don't know what causes it yet, though.
6.1.5. Help, Java said it ran out of memory!
You have two strong candidates as causes for this problem.
1. Your program needs more than the default that the JVM allows.
Memory limits can be set like this: java -ms16m -mx64m .... From
the JDK documentation:
-ms<number> set the initial Java heap size
-mx<number> set the maximum Java heap size
2. You actually don't have enough virtual memory (the total of
physical RAM and swap space) available. The free command can help
you there. See the manual page for free(1). For the current minimum
system requirements, see the discussion of them in section ``What
System Configuration do I Need to Run the JDK?''.
6.1.6. How do I add swap space?
See the manual pages for swapon(8) and mkswap(8).
6.1.7. Where can I report bugs?
Karl Asha has setup a Jitterbug problem-report form at
http://www.blackdown.org/cgi-bin/jdk. Please report problems by
filling this in as best you can. There are some guidelines for this in
section ``What Should I Report?''.
Before submitting a bug, you may be able to help by visiting
Javasoft's Bug Parade at
http://developer.java.sun.com/developer/bugParade/bugs/ and checking
for related problems. If you mention a bug from a JDC bug ID in your
problem report, it can help Blackdown JDK developers. At this time,
you will have to join the JDC in order to search this database.
As usual, feel free to open a discussion about your problems on the
[EMAIL PROTECTED] mailing list.
6.1.8. What should I report?
Although it may not seem so, solving Linux JDK problems can sometimes
be difficult because of the large variation of systems that are in
use. Please do your best when reporting a bug to tell us all about
your system, the code you're running, and anything else that can help.
Here's a checklist of items to mention.
1. A careful synopsis of the problem.
2. Which JDK you're using. Type java -version to see.
3. Your Linux distribution (i.e. RedHat) and its version.
4. The LibC version you're using. Type ldconfig -D 2>&1 | grep libc |
tail -1 to see.
5. The loader you're running. Type ldconfig -D 2>&1 | grep ld | tail
-1 to see.
6. XFree86 Version. Type xdpyinfo | grep 'release number' to see.
7. The version of the Linux kernel you're running. Type uname -r to
see.
8. JDC BugID if you've found one.
9. A URL where with some related Java code or binary data.
10.
Your assessment of the problem's priority.
6.1.9. Are there any debugging techniques I can try myself?
Try running the JDK java, appletviewer, and javac wrapper scripts like
this:
______________________________________________________________________
$ sh -x $JAVA_HOME/bin/java -verbose -verbosegc -cs -verify ...
______________________________________________________________________
or this:
______________________________________________________________________
$ strace -f -s 256 $JAVA_HOME/bin/java ...
______________________________________________________________________
That last command will be very noisy, but you may be surprised what
you learn from reading it.
6.1.10. That didn't help. What else can I do?
We've created a troubleshooting information collection script that you
can download from http://www.blackdown.org/java-
linux/docs/faq/tools/jsysinfo.sh and follow the instructions at the
top of it. Read the output carefully; it's full of hints that can help
you solve the problem on your own.
For serious troubleshooters, see the advice given in section ``How can
I step into native methods used by the JVM?''.
6.2. Blackdown Java and System Environment Variables
This section covers questions about Blackdown Java's interaction with
environment variables on the system.
Last update:
$Id: envs.sgml,v 1.4 1999/12/31 16:16:05 kreilede Exp $
6.2.1. What environment variables affect Blackdown Java?
On June 7th, 1999 Nelson Minar <[EMAIL PROTECTED]> put this list
together.
The following is documentation for environment variables the JDK
supports. Note, this is not a comprehensive document for all
variables: generic variables like LD_LIBRARY_PATH and LOCALE are not
mentioned unless they have Java-specific meanings.
1.1 refers to 1.1.7_v3a, 1.2 refers to 1.2pre-v1. The Blackdown ports
support both Green threads and native threads - some variables are
only valid in one of the two.
Variables with Blackdown specific behaviour Java 1.1 and Java 1.2:
Variable Settings
-------- --------
THREADS_FLAG "green" for green threads
"native" for native threads
Variables with Blackdown specific behaviour Java 1.1 and Java 1.2,
green threads only:
Variable Settings
-------- --------
JDK_NO_KERNEL_FIX "true" to remove fix for kernel accept() bug
DO_NOT_FREE Turn off freeing memory entirely.
DO_NOT_CHECK_MEM If set, removes some checks for double-freed memory
bugs associated with AWT. Dangerous, but slightly
faster.
Variables with Blackdown specific behavior Java <= 1.1.7v3 only, all
threading models:
Variable Settings
-------- --------
NS_JAVA If set, runs a JDK with no AWT or X11. Starts up
faster, no graphics. See also DISPLAY
DISPLAY If unset, acts like NS_JAVA is set (1.1.7v3 only).
See also man page X(1)
DYN_JAVA If set, Motif is dynamically linked instead of
using the Motif statically linked into the JDK bins.
Generic JDK variables, Java 1.1 and Java 1.2:
Variable Settings
-------- --------
CLASSPATH See JDK documentation
JAVA_COMPILER If set to "tya", then "libtya.so" will be used as
a JIT compiler if it is installed correctly. If
set to "none", no JIT will be used.
Java 1.1 uses no JIT if unset
Java 1.2 on i386 uses the Sun JIT (sunwjit) if unset
6.3. Blackdown Java and X11
This section discusses display problems and their workarounds with
Blackdown Java.
Last update:
$Id: x11.sgml,v 1.1.1.1 1999/12/27 06:13:33 stevemw Exp $
6.3.1. Can I run Java without X11 installed?
Michael Sinz of the Blackdown team explains:
In versions of the JDK 1.1.x that predate JDK 1.1.7v3 you
need to set the NS_JAVA environment variable.
As of JDK 1.1.7v3, the JDK will also support noticing that
you do not have the DISPLAY environment set and thus will
use the NS_JAVA setting.
6.4. Font Problems and Blackdown Java
This section discusses font problems and their workarounds on
Blackdown Java.
Last update:
$Id: fonts.sgml,v 1.4 2000/01/06 11:35:55 stevemw Exp $
6.4.1. Why are TrueType fonts required for Java 2?
They're needed for Java2D. Also, UNICODE (see http://www.unicode.org)
mapping is only correct with TrueType fonts.
6.4.2. Can't Blackdown just copy fonts from someplace into a Distri-
bution?
Blackdown developer Juergen Kreileder <[EMAIL PROTECTED]
dortmund.de> answers:
I've asked some time ago and was told that it is not possible because
of copyright. The copyright is somewhat strange,
http://www.softseek.com/Graphics_and_Drawing/Fonts/Fonts/Review_17322_index.html
says:
The font is technically not freeware -- Microsoft has
secured from The Monotype Corporation the rights to dis-
tribute these fonts from their Web site at no cost.
The MS site is http://www.microsoft.com/typography/font-
pack/default.htm. So we would have to ask Monotype. The fonts and
the EULA are available from http://www.agfamonotype.com/soft_dev/
(click on Euro).
6.4.3. Will the situation with TrueType fonts get better?
Juergen Kreileder <[EMAIL PROTECTED]> answers again:
The problem is that XFree86 doesn't support TrueType fonts yet, this
will get better with XFree 4.0.
Juergen continued by saying that upcoming releases of Java 2 from
Blackdown would have improved tweaks to fonts.properties to help them
to work more smoothly.
On January 5th, 2000, Juergen explains further about the missing zapf
dingbats and symbol problem:
The problem is that the URW fonts are available with two
different foundries: urw and abode. The two foundries use
different family names for the fonts too. The reason why we
currently use the urw foundry is that the abode foundry uses
ambiguous family names, this may result in using the symbol
fonts from {75,100}dpi instead of the symbol font from urw,
this gives a bad font display.
So the best way to use the urw fonts with the JDK currently
is to use a fonts.dir file with urw foundry and a font.alias
file with the adobe foundry. Doing it vice versa is not
possible as the JDK currently can't deal with font.alias
files. [I've attached the fonts.* files from the Debian
gsfonts-x11 package.]
Also, it's advisable to make the fonts available through the
Xserver directly (i.e. do not use a font server for the urw
fonts). This allows the JDK to get direct access to the
font files.
6.4.4. Why don't we just turn off the warnings?
The general consensus among experienced Java Linux developers is that
to not warn users of an actual deficiency would be a mistake. Simple
workarounds exist, however.
6.4.5. Will there be future support for TrueType Fonts in X11?
Yes, and FAQ editor's note: you can also find more information about
displaying TrueType on X11 from
http://www.darmstadt.gmd.de/~pommnitz/TrueType/xfsft.html and
ftp://ftp.xfree86.org/pub/XFree86/current/doc/RELNOTES or go to the
XFree86 Home Page at http://www.xfree86.org/ and follow the links to
Current Release.
6.4.6. Where can I learn more about TrueType in X11?
See http://www.linuxdoc.org/HOWTO/XWindow-User-HOWTO.html.
6.5. Problems with Window Managers and Blackdown Java
This section discusses problems with running Blackdown Java with X11
window managers. Also see section ``Blackdown Java and X11''.
Last update:
$Id: window-managers.sgml,v 1.3 1999/12/31 08:36:21 stevemw Exp $
6.5.1. What kinds of problems are related to X11 window managers?
Since AWT is (for better or worse) based on Motif, a Motif-like
window-manager may be less likely to have problems.
In general, window managers are a problem for UNIX users because each
has a varying degree of ICCCM (Inter-Client Communication Conventions
Manual) standards compliance. Moreover, window managers come with a
range of features and bugs.
Please to contribute what you know about your window manager and
running Blackdown graphical Java to the FAQ.
6.5.2. Where is the ICCCM Standard?
See Christophe Tronche's conversion of the 2.0 version of this
document by David Rosenthal at http://tronche.com/gui/x/icccm/.
One discussion of the issues is found at the GNOME developer site:
http://developer.gnome.org/doc/standards/wm/book1.html.
6.6. Performance and Blackdown Java
This section discusses various performance issues with Blackdown Java,
which has been one of the more active threads on the mailing list.
Performance has traditionally been limited by CPU speed, memory, and
Linux's one-to-one kernel thread model.
Last update:
$Id: performance.sgml,v 1.2 2000/01/06 11:35:56 stevemw Exp $
6.6.1. How well does Blackdown Java perform?
Stay tuned for more. Meanwhile, these links should be useful:
o The Volano Mark. http://www.volano.com/benchmarks.html.
o A Comparison of JVMs on Linux by J. P. Lewis of Dream Quest Images:
http://www.idiom.com/~zilla/Computer/javaCbenchmark.html.
o SPEC JVM98. Several JVMs are detailed at SPEC's test-suite page
here: http://www.spec.org/osg/jvm98/.
6.6.2. How can I find out how much memory Java is using?
Nathan Meyers <[EMAIL PROTECTED]> suggests this approach:
My recommendation is to stop trying to make sense of the
output from top and ps, and go to an unambiguous source.
Take a look at the contents of /proc/<pid>/status, where
<pid> is the process ID. This will, at any instant you exam-
ine it, give you (among other things) total current VM usage
and RSS.
7. Other Questions Related to Java and Linux
This section covers random questions that didn't fit into the other
categories.
7.1. General Questions about Linux
While the majority of this FAQ tries to focus on Blackdown Java
itself, we attempt to answer a few Linux-specific questions here.
There are many better places to learn about Linux than this FAQ,
however.
Last update:
$Id: general-linux.sgml,v 1.3 2000/01/07 05:47:57 stevemw Exp $
7.1.1. Where can I find Linux FAQs, mailing lists, and documentation?
Here's a list of good places to start:
o The Linuxdoc project: http://www.linuxdoc.org/.
o The main Linux website: http://www.linux.org/.
o Linux kernels and libraries: http://www.kernel.org/.
7.1.2. What is glibc, and why does it matter?
The UNIX "libc" is the core set of functions to which most utility and
application code links. You can see references to libc in the intro(3)
manual page. For your information, functions described in section two
(see intro(2)) of the manual are all inside the kernel, whereas
section three describes those which may be standard, but are stored in
separate libraries. To view these pages, make sure your core manual
pages are installed, and type man 3 intro, for example.
In order to save disk space and memory, modern operating systems like
Linux have taken to using "shared" libraries that don't move their
contents into code which links to them during the build process.
Although there is a /usr/lib/libc.a, most production code is linked to
/usr/lib/libc.so, which is typically a link-editor script for
selecting the actual libc.so (shared object) archive.
In short, lots of programs on your system share code out of one or
more files as they execute. To see what shared code an executable
needs, there is an optional Linux utility named ldd(1). If it's on
your system, you can type ldd PROGRAM to see its shared libraries.
Here's an example:
______________________________________________________________________
$ ldd /bin/ls
libc.so.6 => /lib/libc.so.6 (0x40003000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)
______________________________________________________________________
The older (and still most common) Linux libc was known as "libc5." The
GNU/Linux development community sought to improve on it by adding
thread-safety where possible, 64-bit support, better POSIX and XPG4.2
compliance, superior organization of the library sources, and multi-
byte character locale support. These and other changes will bring even
more robustness and quality to the Linux development environment.
Although the changes are inconvenient to us sometimes, the end result
should be worth it.
The new library is now called "glibc" because it's a library common
across Linux and HURD, and enjoys a broad base of GNU developer
contributions. (I don't know how much of the earlier Linux libc
software was derived from GNU libc, which has been around for quite a
while on its own, I think.)
For more information on GNU libc, see See
http://www.gnu.org/software/libc/libc.html.
Since C is central to the history and development of UNIX and Linux,
you might enjoy the links found on http://www.lysator.liu.se/c/ as
well.
7.2. General Questions about Java
This section contains replies to a selected list of general questions
about Java.
Last update:
$Id: general-java.sgml,v 1.12 2000/01/07 05:47:56 stevemw Exp $
7.2.1. What is Java?
Java is an imperative, object-oriented language from Sun Microsystems
with a syntax similar to C. Because it supports classes, it is
sometimes compared to the C++ language. Java is also compared to
Smalltalk in part because they are both interpreted and require all
user-defined types to be objects.
Java was first developed for handheld devices in the early 1990s.
After indicating that he wanted move on out of frustration with the
company's unfocused technical direction, Patrick Naughton changed his
mind when CEO Scott McNealy offered to team him up with a variety of
talented Sun people to create a new computing environment. They would
have mixed results, but Java survived. For more on Java's dramatic
origins, see section ``Why was the Java language created?''.
One of Java's most attractive features is the common interface it
tries to provide the programmer to a given host platform. Java classes
are normally compiled into a format which will run on an abstract CPU
known as the "Java Virtual Machine" (JVM). The execution of this "Java
Byte Code" on the JVM is then simulated by a byte code interpreter
running on the target system. However, JVMs have also been implemented
in hardware Sun advertises as Java Processors. Berkeley's CPU Info
Center website has more information about Java chips.
Some JVM implementations, in order to run faster, use a technique
known as "Just-In Time compilation" (JIT). In a JIT, byte codes are
translated to native machine code in a controlled fashion when they
are first encountered, and then executed natively on a host processor.
When the cost of compilation is low and the byte code is executed many
times during Java program execution, JIT compilation can produce
dramatic performance improvements. For portability, Java is normally
not compiled to native code and executed directly by the host
processor. (See section ``Just In Time Compilers for Blackdown Java''
for questions about JITs available to this implementation.)
The "architecture-neutrality" of Java and its standard windowing
environment (called AWT) allow for a fair degree of platform
independence. Sun markets Java for its "write once, run anywhere" (or
"WORA") capability, but those developing serious applications with
Java know that one must still test on targeted platforms. For example,
moving an application between SPARC/Solaris and i396/Linux may reveal
surprising differences despite the similarities of both platforms.
Furthermore, Internet browsers such as Internet Explorer and Netscape
Navigator implement Java differently enough so that in practice,
considerable development effort must ensue in order to provide
consistency to the user.
Java attempts to be a language of choice for developing network-based
applications. It is multi-threaded or "concurrent," and much of its
class library is thread-safe. Thread support is intended in part to
help Java handle networking tasks. One of the design goals for Java
was that it could provide a safer, more secure execution environment
for code in distributed computing applications running in conditions
as hostile as the Internet.
The JVM can be configured such that only a safer subset of Java
instructions can be executed. "Applets," which are intended for use in
a web browser, use what is known as a sandbox. The safety of
individual byte codes is checked just once, at class load time. This
ability to use a "verifier" on the byte code can improve the
performance of sandboxed code without sacrificing safety. A sandboxed
environment also attempts to provide more security for networked
applications by limiting access to certain resources host platform
resources. Moreover, Java does not allow direct memory access except
through its Native Interface API (JNI), which is restricted for
applets.
Rather than burden the programmer with the task of managing memory,
Java uses "garbage collection" (GC) to automatically reclaim storage
which is no longer being used by an application. This works well in
practice: memory "leaks" (where the system refuses to reuse a chunk of
memory which the application has finished using) are rare. Allocation
efficiency is high. Unfortunately, garbage collection can sometimes
cause problems in interactive or real-time applications: many GC
implementations do their work in large batches, which can lead to long
pauses at unexpected times. Unfortunately, current techniques for
avoiding this problem typically lead to less efficient GC.
Finally, Java's support for modularity is quite good. A simple but
reasonably effective package facility has been used to create a
powerful class library that most Java programs use heavily. Access
control to packages and classes is provided by mechanisms which are
fairly easy to use, yet quite effective.
For a more detailed look at the language, please see The Java Language
Environment: a White Paper at http://java.sun.com/docs/white/langenv/
by James Gosling and Henry McGilton in May 1996. You may want to go to
a less flowery description of the Java language found in The Java
Language Specification by James Gosling, Bill Joy, and Guy Steele at
http://www.javasoft.com/docs/books/jls/. You can get an inside view
of the JVM in The Java Virtual Machine Specification by Tim Lindholm
and Frank Yellin at http://www.javasoft.com/docs/books/vmspec/. For
questions about Java security, see the links in section ``Is Java
secure?''.
7.2.2. Why was the Java language created?
In January of 1991, Patrick Naughton, James Gosling, Mike Sheridan,
and Sun founder Andy Bechtolsheim went to stay with Bill Joy in Aspen
to brainstorm. Together, they felt that a dramatic change was needed
in the direction Sun had been taking with hardware and software, and
CEO Scott McNealy had given them permission to work on a secret
project to develop a new product. They wanted to make a revolutionary
wireless, hand-held platform. While there, they realized that they
needed a programming environment to succeed. Bill had talked about a
language environment using C++ which he had envisioned for a 64-bit OS
called Spring at Sun Labs. Instead, James would take a different
direction.
For 18 months, Ed Frank and Mike Sheridan led the resulting project
known as "Green." Their team included Chris Warth, Craig Forrest,
Jonathan Payne, Jim Graham, Wayne Rosing, Joe Palrang, and Chuck
Clanton. Among the results of this frantic effort would include the
Oak programming language, for which James takes credit. Given Bill
Joy's interest in C++ for Spring, it's no accident that the two
languages have several common features.
The remaining history of the Green project is interesting, but suffice
it to say that Oak, which evolved into Java, survived when Green
failed to achieve an immediate customer. Despite Green's mixed
results, Java would become very important to Sun. Since Java's
developers were already interested in integrating it into Web-based
applications, Webrunner (the first Java web browser) inspired
developers to create the first Java applet in early 1994.
Source: The Java Handbook, written by Patrick Naughton and published
in 1996 by McGraw-Hill (ISBN 0-07-882199-1).
7.2.3. Where can I learn more about Java?
Here are a number of excellent starting points.
o Elliotte Rusty Harold's comp.lang.java FAQ:
http://sunsite.unc.edu/javafaq/javafaq.html
o The Java networking FAQ:
http://www.davidreilly.com/java/java_network_programming/
o Peter van der Linden's Java Programmer's FAQ:
http://www.best.com/~pvdl/javafaq.html
o Javasoft's Developer Connection FAQ:
http://developer.javasoft.com/developer/techDocs/faqs.html
7.2.4. Is Java secure?
It has features that make it a candidate for being more secure than
other choices. To read more about Java security, see the page Java
Security FAQ: the Unofficial Answers from the Princeton Secure
Internet Programming Team at http://www.cs.princeton.edu/sip/faq/java-
faq.php3.
7.3. CJK Issues with Blackdown Java
This section discusses problems with displaying and inputting Chinese,
Japanese, and Korean language characters in Blackdown Java
applications.
Last update:
$Id: cjk.sgml,v 1.3 1999/12/31 08:36:16 stevemw Exp $
7.3.1. Can I display and input Kanji with Blackdown Java?
Yes, but the information we have to offer on this is sketchy.
In addition to the information found here, you will certainly
appreciate Dan Kegel's page, Fonts and Internationalization in Java
found at http://www.alumni.caltech.edu/~dank/javafont.htm. You are
encouraged to visit Javasoft's 1.1 discussion of this topic at
http://www.javasoft.com/products/jdk/1.1/docs/guide/intl/fontprop.html,
as well.
Please be aware that these FAQ entries are sparse. If you have
additional information about making CJK (Chinese, Japanese, and
Korean) code work well with Java on Linux, please tell the FAQ
maintainer.
7.3.1.1. Library Issues
The following entries also relate more to situations that arise when
you must settle on one set of libraries or the other, and you end up
without being able to run some application or another because of
unresolved symbols. Keep in mind that with their own builtin loader
and libc, recent versions of the JDK shouldn't cause you to change
your libraries at all.
7.3.1.1.1. Libc5 Systems
Nozomi Matsumura <[EMAIL PROTECTED]> has a suggestion that
at least applied to earlier, libc5 versions of the JDK, and may still
work. It involves making use of multi-byte character support provided
in builds of libX11.so with the Xsetlocale(3) call.
Matsumura points us at this fix provided by Hiroshi Hisamatsu
<[EMAIL PROTECTED]>, which is a small, shared library
(liblocale.so) to explicitly specify the Kanji locale. It is available
from http://www.asahi-net.or.jp/~nf6h-hsmt/jdk1.1.1-locale.tar.gz.
More detail on this is available in Japanese at http://www.asahi-
net.or.jp/~nf6h-hsmt/java.html. The fix also involves adding the
following lines to your .java_wrapper file in $JAVA_HOME/bin:
______________________________________________________________________
LD_PRELOAD="$JAVA_HOME/lib/${ARCH}/${THREADS_TYPE}/liblocale.so"
export LD_PRELOAD
______________________________________________________________________
Matsumura also mentions changing the locale specified by your environ-
ment variable LANG to ja, and says that ja_JP.{EUC,ujis} did not work.
7.3.1.1.2. Libc6 (glibc) Systems
In addition to the properties hacks mentioned above (see section
``Libc5 Systems''), the inverse of what liblocale.so does is probably
possible on glibc-based systems, if there's a problem (with some other
application) at all. You may be able to simulate Xsetlocale(3) by
wrapping setlocale(3) with it. For example, libc5 versions of XFree86
(see http://www.xfree86.org) handle locale with the Xsetlocale(3)
call, but that changes under glibc to plain setlocale(3). See the
setlocale(3) manual page for more information.
7.3.1.2. Can I enter two byte Kanji with XIM?
On July 14th, 1998, Nozomi Matsumura <[EMAIL PROTECTED]>
also submitted this information acquired from Minori Takagaki
<[EMAIL PROTECTED]>, who was able to input and display Kanji using
TextComponent.
Takagaki was able to input directly using kinput2(XIM) or by cut&paste
in Java applications and in appletviewer.
Takagaki's environment is:
o Slackware-3.4 + PJE-0.1(*1)
o Kernel: 2.0.34
o libc: 5.4.38
o jdk1.1.6-v1-libc5
Takagaki said to use Japanese characters, you need to setup as
described here:
1. Install Red Hat Motif 2.1 and X-TT(*2)
2. Modify font.properties.ja (to use X-TT fonts)
3. Get liblocale.so (see the discussion of this above in ``Libc5
Systems'')
4. modify .java_wrapper
___________________________________________________________________
export LD_PRELOAD=liblocale.so
export LANG=ja
export DYN_JAVA=1 # to use libXm.so.2 from RH Motif2.1
___________________________________________________________________
5. If using appletviewer, modify
$JAVA_HOME/bin/i686/green_threads/appletviewer to use the
dynamically linked java binary.
X-TT is free a X font server for using Japanese TrueType Fonts.
See http://www.ryukyu.ad.jp/~shin/linux/x-tt/.
But some problems occur:
1. The getText() function is O.K. but setText() is not.
2. Mouse drag selection is not well. Strings with Japanese characters
using TextField/TextArea are not selected correctly.
3. When a cursor moves in TextField, Japanese characters are often
modified randomly.
4. When Japanese characters are input in TextAreas, display timing is
very strange. But getText() works correctly. Example: to input
'NIHONNGO abcdef' when keying 'ab', 'NI' shows; when keying 'cd',
'HONN' shows, etc. . .
Editor's note: see section ``TrueType Support in X11''.
7.4. Blackdown Java Y2K Issues
Questions about Blackdown's Y2K readiness or lack of it.
Last update:
$Id: y2k.sgml,v 1.2 1999/12/30 12:01:41 stevemw Exp $
7.4.1. Are there any Y2K problems with Blackdown Java?
Blackdown Java hasn't been y2k-tested, but according to Scott Hutinger
<[EMAIL PROTECTED]>, the current JDK 1.2.2 RC included some
date patches from one of our Sun Liasons. For now, please see
http://java.sun.com/features/1999/08/y2k.html for more information.
You're welcome to contribute what you know to the FAQ.
8. Blackdown Java Development and Platform Porting
This section answers a few questions about development and Blackdown
Java. First, it discusses using Blackdown Java to develop
applications. Then it addresses the development of Blackdown ports
themselves. It also describes how you can take advantage of the work
the Blackdown team is doing, and how you can contribute yourself.
8.1. Development with Blackdown Java
This far from comprehensive section includes discussion of full-blown
development with Blackdown Java in the Linux environment.
Last update:
$Id: java-development.sgml,v 1.3 1999/12/31 08:36:18 stevemw Exp $
8.1.1. How can I learn more about developing Java on Linux?
One of the best ways to get started is by participating on the Java
Linux mailing list. If you have access to Linux, you can at least
experiment with Java.
Nathan Meyers <[EMAIL PROTECTED]> has written Java Programming for
Linux, published by Macmillan Computer Publishing; its ISBN number is
1571691669. See http://www.javalinux.net/ for more information.
8.1.2. How do I compile native C or C++ code for interfaces?
See section ``Compiling Library Code for JNI''.
8.2. Java Code Examples
This section has pointers to a few code examples we're adding in
support of this document. Feel free to contribute suggestions.
Last update:
$Id: examples.sgml,v 1.2 2000/01/11 06:50:21 stevemw Exp $
8.2.1. Where can I find some example Java code to get started?
There isn't much documentation yet, nor are there many examples, but
please take a look in this directory: http://www.blackdown.org/java-
linux/docs/faq/examples/.
8.3. Java Licensing and the Open Source Community
A discussion of licensing issues with respect to developing Java on
Linux. This section also addressess some of the questions those who
are interested in contributing to JVM development may have with
respect to licensing. None of this is legal advice!
Last update:
$Id: licensing.sgml,v 1.7 2000/01/11 06:50:21 stevemw Exp $
8.3.1. What issues are relevant to understanding Java licensing?
For a brief introduction to this topic, see section ``Under what
license is Blackdown Java available?''. To paraphrase that
discussion, it merely suggests that binaries are free (assuming that
they've passed a conformance test), source is available strictly
through Sun, and source differences ("patches") can be exchanged
freely.
Blackdown developers presume that Sun's binary license for running its
own Sun/Solaris Java binaries apply to Blackdown Java. So please don't
use our bits for controlling weapons of mass-destruction :)
8.3.1.1. Licensing for Java Binaries
Below are links the the various license-related documents Blackdown
has distributed on behalf of Sun with recent builds of each platform:
o JDK 1.02 http://www.blackdown.org/java-
linux/docs/faq/README/1.0/COPYRIGHT, Known as the JDK BCL 9-6-96,
or Java Developer's Kit Version 1.0.2 Binary Code License.
o JDK 1.1.8 http://www.blackdown.org/java-
linux/docs/faq/README/1.1/LICENSE, or simply the Binary Code
License Agreement.
o JDK 1.2.2 http://www.blackdown.org/java-
linux/docs/faq/README/1.2/LICENSE, likewise called the Binary Code
License Agreement.
8.3.1.2. Licensing for Java Source
While the rules are straight-forward with respect to binary
distributions, community access to Java product source has had an
inconsistent history. Sun is pursuing a new path with important
aspects of its intellectual property licensing known as "Community
Source." This is a clear compromise between simply giving away source
code (the files from which a set of executables like the Java platform
is built) and never sharing it with the world.
This document can't explain everything you may want to know about
licensing and development, but it can give a synopsis of the four most
important issues to you as a developer or interested user.
o SCSL, or Sun Community source License. Sun is distributing source
for many (but not all) of its Java products, including the core
JVM. Selling products based on changes you make to the code is
something you'll have to work out with Sun with branding and
distribution licensing. Blackdown works closely with Sun to ensure
that it stays within guidelines, among which include the
restriction that it can only distribute patches (diff'erences). You
must get the code from Sun directly.
o Burgeoning Java APIs. Although the core of the Java product has
been available in source form to the Blackdown community of
software developers from early on in its history, the ever-growing
number of Java APIs often take longer to go into source
availability. Some may never go into community source release.
o NDAs. Blackdown developers have historically needed to sign non-
disclosure agreements with Sun, and are now forbidden to
participate directly in the two most-commonly known cleanroom open-
source JVM efforts, Japhar (http://www.japhar.org/) and Kaffe
(http://www.kaffe.org/).
o JCK (Java Compatibility Kit). In order to release a build of Java
and call it "ready for production," one must test it thoroughly
with Sun's Java Compatibility Toolkit, or JCK. Because this suite
is closely knit with Sun's partner development process, and is
presumably a part of its current revenue stream plans for Java,
obtaining access to has been difficult. Read more about the JCK in
section ``Java Compatibility Toolkit''. Blackdown has found this
toolkit to be essential for porting JDK 1.2 partly because of its
increased complexity.
8.3.2. Licensing Comparisons
o SCSL. Read more about the changing horizon of Sun's engagement with
the open source community at
http://www.sun.com/software/communitysource/.
o LGPL, what Japhar uses. See http://www.fsf.org/copyleft/lesser.html
for information about the "GNU Lesser General Public License."
o GPL, and Kaffe's perspective. See http://www.kaffe.org/FAQ.html for
information.
o Other such licenses are available at:
http://www.opensource.org/licenses/.
8.3.3. Blackdown's Position on Sun's Community Source Policies
Blackdown developers have worked with Sun through each major version
of the Java product family, and have appreciated its historic
willingness to share source with certain interested developers. We
hope Sun's recent attempt to formalize a community source process will
prove successful for J2SE (Java 2, standard edition), Sun's commercial
partners, and communities like Blackdown. After years of effort to
secure a formal code codevelopment relationship, Blackdown is now
ready to help Sun and Inprise reach out a world of developers wanting
to contribute to the Java platform. However, there remain issues that
Blackdown has always struggled with Sun to resolve:
o Help for developing a consistent policy for recruiting new
Blackdown developers. Currently, we are unclear how to add new
developers to the CVS repository access list, an essential step in
brining in new people. With all the new code to port and maintain,
Sun surely knows this is critical.
o Java compatibility kit (JCK) access and updates. The JCK is
essential for port development, yet Sun has been reluctant to share
it consistently with all Blackdown developers.
o Access to highly current defect information. Blackdown is never
sure when it is fighting a defect that Sun has already solved in a
different way.
o A standardized method of obtaining recent product changes from Sun
and its partners. A shared CVS repository between Sun and Blackdown
would be ideal, but daily differences could also be exchanged.
o Standardized codevelopment procedures. In general, a commitment on
Sun's part to build standard policies with respect to community
source concerns rather that falling back on the heroics of
individual managers like Steve Byrne and Calvin Austin.
If Sun could address these issues, we believe it would usher in a new
era of productivity among open source developers wanting to help Java
succeed.
Please see section ``Statement of Purpose for the Blackdown Project''
for a formalized explanation of Blackdown's philosophy about
participation with the commercial software world.
8.3.4. Where can I find Sun's Community Source Agreement?
For the most recent set of instructions, which apparently allow you to
obtain the source for J2SE (Java 2 Standard Edition), see
http://www.sun.com/software/communitysource/java2/.
In the past, you first you had to read, sign, and (historically) FAX
in an agreement with Sun. The agreement could be found at
http://www.javasoft.com/nav/business/source_form.html.
8.4. Compiling Blackdown Java from Source
Here are some answers to questions about Java platform source code,
compiling, and contributing fixes.
Last update:
$Id: source.sgml,v 1.8 2000/01/11 06:50:23 stevemw Exp $
8.4.1. Can I build Java myself?
Building the JDK on Linux with patches supplied by the Blackdown
project is fairly straightforward. We encourage you to read
http://www.blackdown.org/java-
linux/docs/faq/README/1.2/README.linux.src from the patched source
distribution if you plan to undertake this project.
8.4.2. Could you give me a pointer to Sun's licensing agreements?
Please see section ``Where can I find Sun's Community Source
Agreement?''.
8.4.3. How do I build Blackdown JDK 1.2 now that I have the source?
Read Juergen Kreileder's instructions in your binary distribution. It
can be found online here: http://www.blackdown.org/java-
linux/docs/faq/README/1.2/README.linux.src.
8.4.4. What about Motif? Don't I need that?
You can build the JDK against Lesstif, the Hungry Programmers' GNU
copylefted implementation of the Motif API. For more information,
visit their website at http://www.lesstif.org. Make sure you get the
"current" distribution. They are very responsive to accurate bug and
problem reports.
On the other hand, a number of Motif developer library vendors exist
for Linux systems. I recommend you read the Motif comp.windows.x.motif
news group FAQ. You can find it here:
http://www.rahul.net/kenton/faqs/mfaq_index.html.
8.4.5. What version of Motif is the Blackdown team using?
Thanks to Jim Burmeister at Metro Link, the Blackdown team is
currently using metromotif-2.1.10-4. See
http://www.metrolink.com/motif/index.html for more information.
8.4.6. When I build and install 1.1, I get unsatisfied link errors at
runtime!
For JDK 1.1.x, make sure you're building all the targets Steve Byrne
suggests in http://www.blackdown.org/java-
linux/docs/faq/README/1.1/README.linux.src. Here's an example:
______________________________________________________________________
make DESTDIR="$ALT_JAVAHOME/jdk116v2b" RELEASE="MY-JDK1.1.6-V2B" \
appletviewer jre_only 2>&1 | tee MakeOut-V2B1-BUILD-01
______________________________________________________________________
In this example, I have ALT_JAVAHOME set to the javasrc/build, just
above the genunix/ target directory. You should be able to set ALTMO-
TIF_DIR to where you've installed Lesstif.
Note: you ought to have ALT_BOOTDIR set to a running JDK 1.1, and I
build with CLASSPATH and JAVA_HOME unset.
8.4.7. Can I try builds of the latest JDK port in development?
Please stay tuned to the mailing list for announcements.
8.4.8. What about the JCK?
See section ``What does Blackdown use to test Java's adherence to
Sun's standards?'' for more information.
8.4.9. How can I contribute to Blackdown Java development efforts?
If you're not already contributing good bug-reports, patches, or
documentation, those are places to get started. If you want to join
the developer team, please indicate your interests, relevant
experience, and a couple of professional references to Karl Asha
<[EMAIL PROTECTED]>, the list administrator.
In addition to programming in C, Java, Motif, X11R6, using GDB, and
the occasional kernel diving, you'll need to understand CVS, the GNU
concurrent versioning system maintained by Cyclic Software
http://www.cyclic.com/. A good place to learn about it is Karl
Fogel's Open Source Development with CVS book published by Coriolis;
its ISBN number is 1-57610-490-7, and you can find much of it freely
online at http://cvsbook.red-bean.com/.
8.4.10. What is a source patch?
A source "patch" is generated by the diff(1) program by comparing the
contents of one file (or sets of files, including whole directory
trees) with another and producing a set of differences suitible for
the patch(1) utility. When Blackdown has released a set of patches for
a given Sun source release, you can build what Blackdown is shipping
on your own Linux system by applying the patch set to your Sun source
base. Due to time constraints and the occasional issue with Sun,
Blackdown can't always issue diffs with every binary release. However,
it is one of Blackdown's goals to deliver source differences as often
as possible.
For more http://www.gnu.org/software/libc/libc.html.
8.5. Java Compatibility Kit
Discussion of Sun's JCK, a Java platform testing suite.
Last update:
$Id: jck.sgml,v 1.7 2000/01/05 18:35:31 srh Exp $
8.5.1. What does Blackdown use to test Java's adherence to Sun's
standards?
With the advent of Java 2.0, Blackdown is using the JCK, a large suite
of tests including a harness. Before Blackdown can stop calling a
build a "release candidate" and call it "Java," it must pass the test.
This test suite is sometimes referred to as the Java Conformance
Toolkit, but glossary calls it the Java Compatibility Kit.
Currently, sun's JIT code is one of the areas that requires careful
scrutiny during a release.
Blackdown continues to work with Sun to obtain the latest copies of
this code, but it requires tremendous effort to stay synchronized with
new tests continually pouring into Sun's internal version.
8.5.2. Does any build of Blackdown Java 2 pass the JCK?
For the latest, please visit http://www.blackdown.org/java-
linux/jdk1.2-status/jck-status.html.
8.5.3. Will Sun make the JCK more accessible?
Blackdown developers are working with Sun and Inprise to resolve the
issues surrounding community source for Java products such as the JCK.
We assume Sun will deal with this on a case by case basis. At this
time, Sun developers working on the Jini connection API (a distributed
computing platform) have had stronger ties to the open source movement
than most other APIs. See http://www.jini.org/ for more detail.
8.5.4. Is there any online documentation for the JCK?
See section ``The Latest Blackdown JCK Notes'' below.
The FAQ needs more answers about the JCK, but for now, here are some
links:
o Carla Schroer's 1998 Java One presentation:
http://java.sun.com/javaone/javaone98/sessions/T203/
o A chat session about the test kit:
http://developer.java.sun.com/developer/community/chat/JavaLive/1997/jl0218.html
o Carla Schroer's 1997 Java One presentation:
http://java.sun.com/javaone/sessions/slides/TT28/startit.html; a
transcript of her talk is provided by the Irish Java User's group:
http://sunsite.compapp.dcu.ie/IJUG/javaone/transcripts/compatibility.html;
8.5.5. The Latest Blackdown JCK Notes
Scott Hutinger <[EMAIL PROTECTED]> has been working with the
JCK and has contributed this information on December 29th, 1999 in
hopes that it will be helpful for new users getting started with the
JCK:
o Always make sure classes.zip is unzipped.
o Always make sure (when using slave) that classes and javatest.jar
are in the $CLASSPATH correctly when using the map file and
-mapArg. Note: the mapped files is only needed when doing
slave/master via NFS.
o Only about 20 failures from these two items not being in the class
path for compiler tests.
o Fonts and the JCK documentation Note that '-' are removed; on most
releases, i.e. -DDISPLAY is DDISPLAY=, or -mapArgs = mapArgs due to
font issues.
o Don't use file.txt (.txt) for the ftp file:
1. Set in the file: lib/javasoft-x.jte.
2. Set ftpURL=ftp://someplace/somefile.txt
3. This will cause a failure, use //someplace/someothertype (i.e.
.gif).
4. Use something like .gif, as .txt will be plain/text, and the JCK
thinks it should be html/text or something like that.
o Bad setup for java-compiler (solaris), use share .....
root=myclientslave.edu ..... unless the Solaris machine is setup
well, the slave needs root access. This is mainly for *-compiler-*
tests. As the gui will show unexpected failure from the compiler
(bad access rights), although it's not stated.
o Native threads took around 23 hours to run the java-compiler tests;
Green threads on the slave took about 8 hours?!
o The intial tests are not in the compiler.jtp file, although if
failures exist, just stick in the correct
javasoft.sqe.javatest.selection.initialFiles= setting.
o At that point the complete tests don't need to be run, just the
failure portions to narrow down what needs to be fixed or changed.
o JNI and the JCK (JCK-runtime-vm-x) build in tests/vm/jni/build.
o Using ssh to ssh localhost for getting the display set correctly
will make some of the URL type tests fail.
9. History and People of the Blackdown Java Effort
About the people who have contributed to the Blackdown Java porting
project.
9.1. History of the Blackdown Java Effort
This section is about Blackdown's past. In order to understand the
daily hype about Java (including what you hear about Blackdown), it's
important to look back over its history. If you have anything to add
to this section, please contribute.
Last update:
$Id: past.sgml,v 1.3 1999/12/31 10:50:58 stevemw Exp $
9.1.1. What is the history of the Blackdown project?
Until we can expand this section, here is just one tidbit to offer;
the bug that popularized the request for Java on Linux at Javasoft:
http://developer.java.sun.com/developer/bugParade/bugs/4097810.html.
Note that the Blackdown effort existed (and was arguably as important
to the Linux community then as now) well before Bug Parade did!
There were a number of complex issues involved with this request,
including the wide variety of Linux distributions, target
architectures (beyond Intel where Javasoft already supports Solaris
x86), the huge number of announced APIs with required native support,
and so forth.
However, Javasoft finally released the JDK 1.2 sources to the
Blackdown team, and provided measured engineering resources to help
complete the port. You can read more about this in a press-release
published on Javasoft's website. See
http://www.javasoft.com/pr/1998/11/pr981102-01.html. For the
information about Sun's eventual decision to support Java on Linux,
see ``Is Javasoft going to support Java on Linux?''.
For more information about Java's history, see section ``Why was the
Java language created?''.
9.1.2. Other Historical Information
Please see the far from complete biographical information in section
``Who Ported the Blackdown JDK?''.
9.2. About the People Behind Blackdown Java
Any software project is about people. Here are some of the highlights.
We've left out a whole list of contributors; please see the various
distribution README files for details.
Last update:
$Id: people.sgml,v 1.6 2000/01/11 06:50:22 stevemw Exp $
This section answers questions about the people who've contributed to
the Blackdown project.
9.2.1. Who Ported the Blackdown JDK?
9.2.1.1. The Java 1.02 Port:
Randy Chapman <[EMAIL PROTECTED]> did the original port of the
Solaris JDK 1.0 to Linux on the i386.
9.2.1.2. The Java 1.1 Ports:
Steve Byrne did much of the work on the Intel port of Java 1.1.
Quoting Steve Byrne from http://www.blackdown.org/java-
linux/docs/faq/README/1.1/README.linux
Special thanks to Johan Vos (Sparc Linux port), Chris Sea-
wood (GLIBC), Karl Asha (who gave us blackdown, thanks
Karl!) Kevin Buettner, Scott Hutinger, Kevin Hendricks,
Brian Keller, Philippe Laliberte and the rest of the PowerPC
porting team -- these guys really fixed a *lot* of generic
JDK bugs -- the 1.1.5 port is *much* better as a result of
their hard work. Dan Powell and Rich Cannings have been very
gracious to take over the administrative duties and to pro-
vide a site (and domain name) dedicated to java-linux --
thanks! [Also: Neal Sanche fixed the thread creep bug.
Thanks, Neal!]
9.2.1.3. The Java 1.2 Ports:
Regarding work done on Java 1.2, the http://www.blackdown.org/java-
linux/docs/faq/README/1.2/README.linux, file indicates:
The following people have helped with the porting of Java 2
to Linux:
Juergen Kreileder, Kevin Hendricks, Steve Byrne, Johan Vos,
Anand Palaniswamy, Eddie Dost, David Connelly, Karl Asha,
Kars de Jong, Scott Hutinger, Calvin Austin, Nigel Gamble,
Michael Sinz and Brad Crochet.
9.2.1.4. Collecting History
If we've missed anyone, please let us know. Please pass on historical
information to the FAQ maintainer.
9.2.2. Who is Steve Byrne?
Steve Byrne was educated at Carnegie-Mellon University, and among
other things, managed Java-related projects at Sun Microsystems. In
addition to contributing much of the Blackdown JDK 1.1 port to Linux,
he has also been a long-time GNU SmallTalk maintainer. Steve has a
small amount of info about himself at his web page:
http://www.penguinis.org/~sbb/. For more information about GNU
SmallTalk, see the Official GNU Smalltalk Page at
http://www.smalltalk.org/versions/GNUSmalltalk.html.
9.2.3. Who is Karl Asha?
Karl Asha from the beginning has been the maintainer of the web site,
Blackdown's Java-related mailing lists keeper, and has managed product
distribution. He's now taking on the central role of licensing
administration, which can be a sticky wicket.
9.2.4. Who is Juergen Kreileder?
His first name spelled more correctly would be "Jrgen." He hangs out
at University of Dortmund Fachbereich Informatik, and hacks on
everything Java and Linux. Juergen has taken on an increasing number
of technical management roles on the Blackdown Java project.
9.3. Information on the Java-Linux FAQ
This section gives some background information about the FAQ itself.
One of the amusements of idleness is reading without the
fatigue of close attention; and the world therefore swarms
with writers whose wish is not to be studied, but to be
read.
-- Samuel Johnson, November 11, 1758.
From Writing: the Samuel Johnson Sound Bite Page quoted in number 948
at http://www.samueljohnson.com/writing.html.
Last update:
$Id: about-faq.sgml,v 1.13 2000/01/11 07:04:38 stevemw Exp $
9.3.1. Who maintains the FAQ?
With help from the Blackdown Development Team, Stephen Wynne is the
current FAQ maintainer. However, answers to questions found in this
document are from a variety of participants on java-
[EMAIL PROTECTED] If you have any additions, comments,
clarifications, or corrections, please send them to Stephen Wynne
<[EMAIL PROTECTED]>.
9.3.2. Where can I get a copy of the FAQ?
The most recent copy of this FAQ can be found at the Blackdown
Documentation Page: http://www.blackdown.org/java-linux/docs/faq/FAQ-
java-linux.html.
o Here's the text version of this document:
http://www.blackdown.org/java-linux/docs/faq/FAQ-java-linux.txt.
o The PostScript "letter" version:
http://www.blackdown.org/java-linux/docs/faq/FAQ-java-linux.ps.
o The PostScript "A4" version:
http://www.blackdown.org/java-linux/docs/faq/FAQ-java-linux-a4.ps.
o The PostScript "letter" version created with enscript(1) from the
text above and rendered into two columns:
http://www.blackdown.org/java-linux/docs/faq/FAQ-java-linux-r.ps.
o The PDF "letter" version created with pdflatex(1):
http://www.blackdown.org/java-linux/docs/faq/FAQ-java-linux.pdf.
Full SGML source for the FAQ is available in the same directory:
http://www.blackdown.org/java-linux/docs/faq/.
9.3.3. Please help the FAQ maintainer!
The FAQ maintainer is looking for the following information:
o Corrections of all kinds, especially with this larger version.
o Linux distribution-specific information. What did you have to do to
get the latest version of 1.1 working? The latest 1.2 version?
o Native code integration you want to get credit for contributing.
o How you got a certain Java API to work.
o Performance tricks for Java 2.
o Your Java Compatibility Kit (JCK) experiences.
o Any wide-character (CJK) input/display setup tips and suggestions
you may have, especially for Java 2.
o Kernel issues and Java. (Such as threads and scaling, 2.3 kernels.)
9.3.4. Are there any plans for automating the FAQ?
Not at this point. The FAQ requires a coherent effort to maintain, and
dividing it among a relatively anonymous group of people might not
help. One step we've recently taken is to move the source for it into
CVS, and Blackdown developers are now beginning to share in its
maintenance.
9.3.5. Caveat Emptor
This document may contain technical information that is incorrect,
out-dated, and may unintentionally misrepresent the opinions of java-
[EMAIL PROTECTED] participants. Neither the FAQ maintainer nor
the members of the mailing list make any warranty with respect to its
usefulness or safety.
9.3.6. Terms of Use
This document is copyright 1999 by Stephen M. Wynne. You may use,
disseminate, and reproduce it freely under the Open Content License
(OPL) provided you:
o Do not omit or alter this copyright notice.
o Do not omit or alter the version number and date.
o Do not omit or alter the document's pointer to the current WWW
version.
o Clearly mark any condensed, altered or versions as such.
These restrictions are intended to protect potential readers from
stale versions and ensure that this information remains free.
For the full text of the OPL, see
http://www.opencontent.org/opl.shtml.
9.3.7. Major Contributors to this Edition of the FAQ
Although the FAQ maintainer takes responsibility for any errors in
this document, some people have made a tremendous difference in
producing this edition. Their patient assistance has been greatly
appreciated.
o Barton C Massey <[EMAIL PROTECTED]> helped with suggestions and
technical review for section ``What is Java?''.
o Scott Hutinger <[EMAIL PROTECTED]> contributed JCK and Arm
information, as well as overall review of the FAQ that included
corrections and his own improvements.
o Juergen Kreileder <[EMAIL PROTECTED]> wrote much of
the new JDK 1.2.x documentation referenced here, and has been
helpful in documenting TrueType problems.
o Karl Asha <[EMAIL PROTECTED]> provided general review.
9.3.8. Other Acknowledgements
This FAQ's content and structure was inspired by several documents
produced by Eric S. Raymond. Eric also maintained an early HOWTO
regarding Java on Linux. It's archived at
http://www.tuxedo.org/~esr/faqs/java.html.
We've archived one of the text versions of this document (in this case
one Karl Asha wrote) plus a MINI-HOWTO of uknown provision:
http://www.blackdown.org/java-linux/docs/faq/README/1.0/Java-Linux-
HOWTO
http://www.blackdown.org/java-linux/docs/faq/README/1.0/Java-Linux-
MINI-HOWTO
The FAQ was produced directly from SGML with the SGML tools package
available from http://www.sgmltools.org v1.0.9, using the LINUXDOC.DTD
(both available for in RedHat 6.1 in standard RPMs).
----------------------------------------------------------------------
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]