I am aware of two common singleton patterns: 1) make all methods static and make constructor private. 2) keep a static reference to the singleton object, make constructor private, but expost a public static accessor to that static singleton referece.
In an environment with a single JVM but multiple classloaders, my understanding is that more than 1 class object can be created from the same fully-qualified class name and therefore it is still possible to create more than 1 instance of the class (i am referring to class declaration here, not class object) for both approaches.
'Promoting' the code so that it gets loaded higher in the ClassLoader hierarchy is a solution, but moving it all the way to the bootstrap or extensions is usually a bad idea. If it was a J2EE application it may be sufficient to place it in the <server installation>/common/classes or equivalent, but I'm not sure how your application is set up.