The output looks good and please don't mid the changed main method. I had to change it to be able to test the code on my windows box. As commented in the modified main the getProtectionDomain() method returns a path with a leading /. And that would result in a windows path similar to /c:\pathToTheClass. When I switch the mains only the second requirement fails. But why. I load the two classes implementing the HiddenClass interface. Even the class with the private constructor. So what is validation complaining about? What am I missing?