I agree this is a good solution: the default behaviour is going to work because the maintainer tested it, and it's easy to use another VM, in particular for testing it.A better way in my opinion is to allow the user to 'override' maintainer's choice of VM environment in some easy way (like putting another java executable in front of his path, or running a selectmyvm script).
What about an environment variable? Like $ someapp # runs someapp with one of the packagers tested JVM $ JAVA=/usr/bin/kaffe someapp # runs with kaffe Is there is a risk of JAVA being already in use for some other purpose? Daniel