[messages] [Technical Support & Bugs] Missing card and counter text

Joel Uckelman uckelman at nomic.net
Tue Feb 19 08:19:24 MST 2013

Thus spake mgringo:
> [quote="gdaudin"]
> BTW, Michael, what is the version of Java run by Vassal when you start
> it "normally" ? 
> /quote]
> The short answer: The first one java finds in your class path. 
> What we are doing is overriding the existing class path to guarantee
> that we find only the jars that we know are correct. Your comment before
> about the system not starting because of the version indicated to me
> that there was still an invalid connection to a jar from a preexisting
> version (it was compiled with an earlier library). So uekelman's
> technique excluded all the other virtual machines and launching from the
> command line specifying only the minimal number of jars ruled everything
> else out.

This is not entirely accurate. You're conflating two unrelated things,
the PATH, and Java's classpath. Which JRE binary is used when 'java'
is invoked is determined by the leftmost directory on the PATH contains
which contains a file called 'java'. The Java classpath is something
that the JRE uses to find class files. It has a similar function as the
PATH, but is specific to Java and is something which gets specified
when you start the JRE. There is no way that you can set the classpath
which whill affect which JRE is started.

The reason that you can launch VASSAL by specifying lib/Vengine.jar as
the entire classpath is that Vengine.jar contains a manifest file which
adds the jars on which we depend to the classpath. The point of this is
that it makes it harder to get the classpath wrong.

Summary: The Java classpath is irrelevant here. The problem is with
the PATH (which, BTW, you can print with 'echo $PATH').


More information about the messages mailing list