proposed debian policy for java

Per Bothner per@bothner.com
Tue Jul 6 15:49:00 GMT 1999


Your document uses the phrase "Java compiler" to mean "a program that
translates Java source code into .class files". There are other kinds
of compiler, specifically ones that compile to native code (C,
assembler, or machine code).
> If you source package can compile (correctly) only with non-free tools
> (the only free Java compiler seems to be guavac )

Egcs and Gcc 2.95 includes a free Java compiler. It can produce
either native code or machine code. The command `gcj -C' should be
a drop-in replacement for `javac' in most Makefiles. (However, Gcj
does not yet handle inner classes.) See http://sourceware.cygnus.com/java
> A General Java Repository is created by java-common in
> /usr/share/java/repository. Classes which comply with the hierarchical
> packages naming (for instance, gnu.getopt, com.foo.bar), MAY install
> classes under it. 

The packages I maintain (see http://sourceware.cygnus.com/kawa/api/ )
are currently installed in /usr/share/java directly (assuming --prefix
is /usr). Personally, I prefer to avoid extra levels of directory
nesting, unless they add useful organization. I don't understand
why you want to put classes in a `repository' sub-directory - though
my next paragraph may provide one justification.
You should perhaps clarify that Java *implementations* should *not*
install classes directly under /usr/share/java/repository (or
/usr/share/java), because they might provide different (conflicting)
implementations of (say) java.lang.Class. Instead, they should go in
either a .zip/.jar file, or a subdirectory. For example, the run-time
classes associated with Kaffe could go in /usr/share/java/kaffe.zip or
in /usr/share/java/kaffe/java/lang/....
If a Java application or library has classes that *depend* on a specific
Java implementation (perhaps because of native code or working around
missing features or optimizing for a specific VM), they should go in
the implementatation-specific sub-directory. Thus package gnu.xxx
could install portable classes in /usr/share/java/repository/gnu/xxx,
but classes specific to Kaffe in /usr/share/java/kaffe/gnu/xxx.
-- 
	--Per Bothner
bothner@pacbell.net per@bothner.com http://home.pacbell.net/bothner/


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /