i think you have run into the same issue that many do. namely, what are the trade-offs when ensuring compatibility. as someone who does quite a few freelance projects in flash i run into this all the time. i think there is no good technological solution to this at this time. there are simply too many platforms and implementations out there. in java specifically, there could be even more change on the horizon if it is opensourced.
in short, i think you will simply have to make tough decisions. how important is the acceleration? does the accelerated version offer a significantly different experience ( i.e. would you be willing to do away with it for wider compatibility )? if it does, maybe it’s worth it to the user to agree to accept your certificate. another approach ( which unfortunately i feel compelled to do ), is to mask this decision from the user. search their system information, ask them some questions, and add code that will make the decision for them. for example, if they are running old java vm, or browser, they probably don’t have what your accelerated version needs, so redirect them to or instantiate a software rendering app. if they’re all new and fancy, they may be willing to accept some machine code from you. in return though, they had better get something extra for their effort. just tell them in advance what you are doing so they don’t freak when they see the certificate. even explain the sandbox concept if necessary, although probably TMI (too much information).
with something like flash, it’s more about versioning, thus about what flash capabilities can my app use. java adds the power, and hassle of being able to allow the user to safely accept JNI machine code for their platform; that makes it about trust. java is a little over the top with it’s bank corporation looking security windows. they could learn something from flash: aesthetics and graphic design are as important as code. anyway, just some ideas about making tough compatibility choices.
cheers.