[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ A ] [ next ]
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)
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.
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.
GCC, the Gnu Compiler Collection comes with GCJ, the Gnu Compiler for Java
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.
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.
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.
jde, ddd, more?
One of the some nice features of jde are autoindention and syntax highlighting, but it also supports debugging and compilation.
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.
There are some alternatives for an appletviewer tool:
Blackdown's appletviewer (in jdk1.1).
Kaffe's appletviewer.
Ibm's appletviewer (in ibm-jdk).
FastJar
which is indeed very fast. Kaffe
also has a
jar tool.
doc++
can work with C++ and Java. Additionally, there are the
gjdoc
and gjdoc-native
packages.
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).
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.
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.
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.
Runtime environments/Virtual Machines
jdk1.1
(Sun's JDK 1.1.8)
IBM 's JDK 1.1.8 (installer package)
kaffe
kissme
sablevm
Tools
Compilers
jikes
(also jikes-1.14
, jikes-gij
,
jikes-kaffe
)
jdk1.1
gcj
tya
(JIT compiler)
Debuggers/Testing
jswat
junit
IDE/Editors
jedit
jde
Build tools
ant
jmk
mmake
Other
fastjar
jad
(decompiler)
Ant
Libraries
lib-dom-java
lib-gnu.getopt-java
lib-gnu.regexp-java
lib-saxon-java
libavalon-excalibur-java
libavalon-framework-java
libbcel-java
libbsf-java
libcrimson-java
libcommons-beanutils-java
libcommons-collections-java
libcommons-digester-java
libjdom-java
libjunitperf-java
libldap-java
liblog4j
liblogkit-java
libnbio-java
liboro-java
libpgjava
libreadline-java
libregexp-java
libservlet2.3-java
libservlet2.2-java
libsoap-java
libtomcat4-java
libxalan-java
libxalan2-java
libxerces-java
libxerces2-java
libxt-java
[ 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 $ 29 Dezember 2009Sunday, 4th Novemberjfs@debian.org