Java / JNI


My day job has me working on, among a variety of things, a Java/JBOSS based grid system that includes remote clients that use JNI for platform specific features.  Three years ago that first sentence would have been complete greek to me.  But I got hired as a Software Engineer and they trusted me to learn it.  So I did.  They're good guys at Colorado Engineering, Inc. Even if they are making me do OO programming.  Eventually I'll get to return to good ol' C and basic linux fun.

Anyway, I've learned a bunch since I was hired in June 2006.  A lot of it came from searching the net for information, reviewing problems other people had already solved.  It wasn't always easy to find what I needed, but it was out there if you just interpreted what you found correctly.  I decided that I should collect this information and post it for others to find.  Our corporate web site isn't appropriate for this so I decided to create a place under my personal web site for this information.

If you work with any of these technologies, feel free to drop me a line.  I'm far from an expert.  In fact, I don't (and won't) even put any of this stuff on my resume.  It's not where I want to go – I'd rather get back to building kernels and custom distributions for embedded systems.  But I'd be happy to share what I have learned, and don't mind learning a few new things to make my grid project work better.

update 2009-07-05

The grid is now at V2 and delivered to the client.  It's quite stable on both the client and server sides.  However, stability on the client side took quit a bit of work.  It turns out that jni is not happy when signal handlers in C code make callbacks to java code.  This causes the JVM great hardship, which in turn responds with crashes and thread lockups.  While Java, the language, is quite nice, the JVM is one of the dumbest things ever invented.  Native compilers would have been better.

Since the project is released I'm finally ready to write up what I've learned over three years.  Of course, I'm already working on V2.5 and have plenty of plans for V3, if we can find some non-VC funding to work on the stuff.


I'm a C programmer by trade and desire.  These discussions are based on a C developers view of the Java world.

Topics