classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: japize


From: Stuart Ballard
Subject: Re: japize
Date: Tue, 01 Oct 2002 09:11:17 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1) Gecko/20020913 Debian/1.1-1

Brian Jones wrote:
Brian Jones <address@hidden> writes:


Hmm, what did you compile with?  Looks like japi classes rely upon
Collections support.  :)

Sorry for the delay in response to this. I was trying to figure out whether I knew of any reason you could be getting "class not found" on Japize itself... surely the classnotfound error should refer to a missing collections class, not japize?

Did you establish that this was due to the missing collections classes, or is that issue still open?

So basically I can't figure out any way to run japize with JDK 1.1 and
any form of the Collections classes, I think mostly because Comparable
didn't exist at that time, like in String, and TreeMap breaks, at
least in Classpath.

Yes, it does rely on Collections, including TreeSet (which I believe depends on TreeMap behind the scenes). You could probably use it with JDK1.1 and one of the collections addons if you changed all the import statements for java.util.* and recompiled (and also used the jode jarball that's designed for 1.1) but I haven't tested this. This is unfortunate but there were aspects of the algorithm that really relied on collections' behavior, and recoding without the use of TreeSet.subSet would at least double the size of a subroutine or two...

This means it's useless or impossible to compare against 1.1, unless
someone else finds a way to do this.

On the other hand, this part isn't true. Japize uses the Jode libraries to load classes from any zipfile you specify, so it's entirely possible (and expected) to use JDK1.{2,3,4} to run Japize itself, but point it at the JDK1.1 classes.zip.

The same thing is presumably necessary to get a classpath japi, if classpath's TreeMap doesn't work.

Try something like this, with "java" in your path equating to jdk1.2 or above...

japize as jdk11 packages /usr/lib/jdk1.1/lib/classes.zip +java -java.awt.peer -java.text.resources

(that's all one line of course).

Java 2 comparisons being more
meaningful anyway I'll probably stick to this.  Does anyone have an
appropriate japize line for Java 2 (1.2, 1.3, 1.4)?

I haven't tried (my computer would give up the ghost at the mere thought) but here's how I'd go about figuring one out:

japize as jdk13 packages /usr/lib/j2sdk1.3/jre/lib/rt.jar +java +javax +org
japipkgs jdk13.japi.gz | less

Then compare the list of packages to the list in Sun's API documentation (http://java.sun.com/j2se/1.3/docs/api/overview-summary.html) and add -pkgname entries for each of the things that shouldn't be there.

If you do produce 1.2, 1.3 or 1.4 japi files, please send them to me or post them somewhere, because it would be really useful for my testing (I believe my computer can handle japicompat on large files, just not japize itself). Likewise if you produce a classpath.japi.gz...

Btw, it's enlightening to look at the results of japicompat between successive jdk versions. Sun themselves did an awful lot of binary-compatibility-breakage between releases...

Stuart.

--
Stuart Ballard, Programmer
NetReach - Internet Solutions
(215) 283-2300, ext. 126
http://www.netreach.com/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]