OK, I understand how it's working at the moment.
I'm not sure why allowing any library would pose a security threat, though. Anything that a library does, the main program could also do it, with the same result. (I would think that the right way to ensure security would be to run programs inside a chroot fail, at least if your server is a Linux/Unix system. For Java, you could additionally set up a security manager).
Actually, I was wondering if you could consider allowing submissions in bytecode format (inside a jar, possibly with a maximum size) as well as in Java source. Benefits:
- Allow submissions to use any library, provided the submitter packages that library inside his jar.
- Instantly allow submissions to be written in one of the hundreds of languages that compile to java bytecode (see flp.cs.tu-berlin.de/~tolk/vmlanguages.html21). I think that would make many people interested in non-mainstream languages happy.
- Save some compilation time on the server