Thanks David, I did indeed have a typo. My java.ext.dirs isn't null but C:\OpenJDK-b96m\jdk7\build\windows-i586-fastdebug\lib\ext;C:\WINDOWS\Sun\Java\lib\ext and I did have the required jar file in that directory so I suppose I should still try to figure out why using AWTEventMonitor from a jar causes the NoClassDefFoundError. I suspect I won't look any further though since I need to eventually merge the classes of that package into the JDK anyway - and that fixes the problem, i.e. putting them into the classes directory.
Pete David Schlosnagle wrote: > On Wed, Aug 4, 2010 at 12:12 AM, Pete Brunet <peter.bru...@oracle.com> wrote: > >> The failure is on this line of code: >> AWTEventMonitor.addFocusListener(this) >> which resides in ...\classes\sun\awt\windows\accessibility >> >> AWTEventMonitor is a class in jaccess-1_4.jar which is in lib/ext >> >> However, just before the failing line is executed, a println shows these two >> system properties >> java.ext.dir: null >> java.class.path: \Program >> Files\Java\jdk1.6.0_20\demo\jfc\SwingSet2\SwingSet2.jar >> >> so that seems to explain why a class in a jar in lib/ext won't be found >> (unless there is some other internal means being used to find jar files). >> >> Since I suspect I'll eventually merge this package into the jdk, to continue >> debugging I extracted the jar into the classes directory. >> > > Pete, > > I'm not sure if you just have a typo, but the system property for > specifying alternate extension directories is "java.ext.dirs" [1], and > it can be a list of directories delimited by the > java.io.File.pathSeparatorChar (';' on Windows, ':' on Unix). > > [1]: > http://download.oracle.com/javase/6/docs/technotes/guides/extensions/spec.html#installed > > - Dave >