JVM Compatibility for QSI
As I was about to release the first beta version, I decided to try out
various incarnations of Java Virtual Machines (JVMs) to see what did and
didn't run. To my surprise, only the versions that I had been using for
development successfully run QSI at this time. Here's a list of the ones
I and others have been able to try:
MRJ 2.0 (MacOS 8.1 CD default
Works. New Platinum look is great and a quashed thread bug makes QSI
server queries finish faster. Due to a serious bug in the networking of
MRJ, versions of QSI before 1.1.1 do not work, though. Make sure you have
the latest version.
MRJ 1.5 &
Work! This is one of the two JVMs I used for development.
MRJ 1.0.2 (including
Mac OS 8's default installation)
Does not work. All UDP packets received from hosts are arrays of 0's.
I'm not going to worry about this anymore since 1.5 final has been released.
CodeWarrior Pro, Release
Does not appear to work. I was really bummed about this since I was
looking for a good IDE to develop with and have heard so many great things
about Metrowerks. I tried both the default and JIT JVMs. Both had problems
with updating the MultiColumnListbox (the main component for QSI) and the
networking with DatagramSockets did not appear to function at all. I did
not have a lot of time to spend on this. If anyone has better results,
let me know. Also, CW Pro does NOT fully support 1.1, despite what I had
read and what one of their sales folks told me. It's in prerelease form
and is not installed by default. I'm glad I got to try someone else's out
before I forked over the money for it!
Does not work. Another big bummer. I found a nasty bug in the InetAddress
class in JDK 1.0.2. Sigh. Address created with IP numbers (InetAddress.getByName("22.214.171.124"))
get corrupted IP parts (i.e. .getAddress returns a corrupt number, usually
something like 0.0.0.144). Supplying a real name ("coopers.astro.wisc.edu")
works, but we can't do that for QSI since pages normally only list IP numbers.
Unfortunately DatagramPacket requires an InetAddress object.
To see if you have java on your SGI machine, look for the directory /usr/java.
To see which version you have, do a '/usr/java/bin/java -version'.
Development Environment 3.0
(-version: java version "3.0 (Sun 1.1.2)")
Java Development Kit 1.0.2 (2.0 SGI)--CosmoCode 2.0 and
Works! This is the other JVM I used for development. This is also bundled
(I think) with CosmoCode
Java Interpreter 1.0--CosmoCode 1.0
(-version: java version "ritao:03/18/18-03:01")
(-version: java version "ism:09/19/19-17:51")
Do not work. These have a bizarre bug that causes InetAddress.getByName
to throw a UnknownHostException on (seemingly) random IP numbers. The suspect
hosts are pingable and can be resolved to names with a reverse-DNS lookup.
There is a also a harmless, but annoying warning from the X toolkit about
the scrollbar when there is no servers in the list.
RedHat 4.2 (Linux kernel 2.0.30): Change /usr/java/bin/java to /usr/bin/java
in the QSI shell script. Matt Greenfield reports:
anyway, it seems to be running fine so far (well, had it running
as of 2 minutes maybe, but no barfs, no breakage).. I've had it poll for
servers, and it's done that fine.. so.. will go play now, and see how it
goes.. but otherwise, I'd say it's Linux happy.. :)
I had no problems running QSI on a Solaris
2.5.1 (SunOS 5.5.1) on sparc 5 hardware using jdk 1.1.1. I did have to
add the jdk library to the LD_LIBRARY_PATH var.
Paul Davis writes:
Josh Straub of
QSI works great on the Microsoft
Win32 Reference Implementation Java Virtual Machine. (how do you like
that name for Official?)
You just copy qsi.zip to \windows\java\classes\ and go to
a dos prompt in that directory and type
If the classpath statement gives you errors, just use
This was the MS JVM 1.51 or whatever, not the MS JavaSDK 2.0 preview
Nathan Marentette writes:
... I've tested it now under the new 1.1.1 (command line "java
QSI" was all that was necessary). Unfortunately it doesn't seem to call
Quake quite correctly, this might be because I'm using the OS/2 port of
Quake and an exception is reported in DosCallProgram or some such thing.
Matt Haffner <email@example.com>
Last modified: Monday, October 20, 1997