[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ A ] [ next ]


Debian GNU/Linux Java FAQ.
Chapter 3 - Status of Java in Debian GNU/Linux 3.0 (Woody)


3.1 Where is Debian Java going?

The first thing you should understand about the design strategy of Debian is that our goal is to produce a 100% Free Software platform. In that sense, some of the Java tools available [1] are not available in the standard Debian distribution for licensing reasons, not for any technical motivation (see Questions on platforms and license concerns, Section 7.3).

That said, basically all of the technologies you might ask about can be or are available for Debian immediately. In order to usefully answer your questions, however, here you have a status from an Open Source availability perspective.

If you are really interested, read the following: http://lists.debian.org/debian-java/1999/debian-java-199912/msg00015.html and http://lists.debian.org/debian-java/1999/debian-java-199910/msg00017.html. This section is a summary of the information therein. (Note: this information might not be fully updated at this point in time, it was written around 1999)


3.2 Is there a Java1 compiler (.java to .class)?

There is the Kopi Java Compiler written in Java. And the super fast Jikes written in C++.

Gcj can also compile .java to .class. CVS version currently does handle inner classes, as well as any other jdk 1.1 constructs, but might not be able to compile a complicated program like the XSL processor xt. It is written in C, so is reasonably fast. It generates reasonably good bytecode. And of course being able to use the same compiler for .java to .class and .java to native has its advantages.


3.3 Is there a Java1 JVM or JIT?

Kaffe 1.0.5 is largely feature complete and now includes support for RMI. It is not clear as to whether Kaffe's serialization is "binary compatible" with Sun's implementation in all cases so there may be interoperation issues in some casses. Kaffe comes with a big class library.

libgcj (the run-time library for gcj) now includes an interpreter and ClassLoader.

tya, a JIT compiler, is also available.


3.4 Is there a Java1 native compiler?

GCC, the Gnu Compiler Collection comes with GCJ, the Gnu Compiler for Java


3.4.1 Java2 native compiler

It is unclear whether native compiler refers to the adaptive JIT capabilities in Java2 or to a compiler that understands Java2 semantics. In either case, Kaffe's JIT strategy is not adaptive but performs correctly, and improving, it is believed IBM's Jikes compiler understands Java2 concepts such as weak references.


3.5 Does Debian have Java2 foundation libraries?

Many of these components have been cloned under a Free Software license. Kaffe provides many of these routines, including an up-to-date RMI implementation. There are, however, definitely shortcomings. Swing, as far as we know, has not been cloned.


3.6 Is there a Java Debugger (jdb equivalent)?

jswat

Gdb can debug native code produced by Gcj. Stuart Grossman (Cygnus) also wrote support for Gdb to debug other VMs using JVMDI. This has not been released, because the Gdb internals were changed at the same time, and no-one has had time to re-integrate the changes. We can probably get Cygnus to release the old code, if someone wants to look into getting this stuff working with the current Gdb internals. (A non-trivial job.)

See http://sourceware.cygnus.com/java/gdb.html on how to debug gcj-compiled Java programs.


3.6.1 What free edit-interactive/graphical debugging tools are available on Debian?

jde, ddd, more?

One of the some nice features of jde are autoindention and syntax highlighting, but it also supports debugging and compilation.


3.6.2 Known problems

My version of jdb (jdb version 98/01/06) terminates after a program finishes execution, and I have to reset every breakpoint if I want to run through the program again. This makes using jdb extremely frustrating. Jdb also can't (easily) print the values in an array which is more than three elements long. Ddd lets me work around both of these annoyances.

ddd 3.1 and earlier would "hang" when receiving certain prompts with wierd thread names from jdb. This made it very hard to use ddd with jdb. This has been fixed in ddd 3.2. It doesn't look like ddd 3.2 has been packaged yet. I suspect the current packaged version of ddd won't work well with jdb.


3.7 Is there an Appletviewer tool?

There are some alternatives for an appletviewer tool:


3.8 Is there a Jar tool?

FastJar which is indeed very fast. Kaffe also has a jar tool.


3.9 Is there a Javadoc tool?

doc++ can work with C++ and Java. Additionally, there are the gjdoc and gjdoc-native packages.


3.10 Does Debian do Enterprise Java Beans (EJB)?

There is activity in this area, the most noteworthy being the Open Source EJB implementation from Bull in France called Jonas. I have done some work with this system and it provides a good start towards a full EJB feature set. In particular, it provides a transaction monitor and a container based persistance implementation. I have used this system on Linux with free databases such as Postgresql. I have not been able to get the system fully operational on Kaffe. Additionally, the system depends on many Sun APIs which have not been cloned (JTA, JNDI, and EJB itself).


3.11 What is JAIN?

It seems to be a system for controlling large scale, integrated communications infrastructures and modeling events with such networks via the JavaBeans API. The scale of this effort seems very large and encompasses the work of many organizations. The work is very new and seems to tie into Sun's SCSL strategy, which leads us me to believe that there is not much in the way of Open Source options in this area. However, some protocols such as H.323 are genuinely open and are even cloned so it is possible that chunks of the JAIN system may exist in a scattered manner. We have no knowledge of a serious Free Software implementation of RTP or the H.323 infrastructures in Java.


3.12 What is Jini?

Jini presents an especially pronounced Free Software problem. Jini is only available as source from Sun and that source is only available under the SCSL. The SCSL is not compatible in any sense with either the legal mechanics or the political spirit of Free Software. The SCSL also makes cloning the API of an SCSL implementation illegal which precludes even a clean room replication of Jini. If you are interested in tuple space type implementations there are Open Source options.


3.13 Is there a full list of packages?

Below is a list given on packages that can be found in Debian 3.0 (aka Woody). The list does not display which of these packages can be found in main, and which is contrib or non-free.


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ A ] [ next ]


Debian GNU/Linux Java FAQ.

$Revision: 1.57 $ 4 August 2009Sunday, 4th November

Javier Fernández-Sanguino Peña jfs@debian.org