If a portability rewrite in Java ever becomes a serious possibility, we (you? everyone?) should also consider C. Everything either runs C or has an FFI to it. It might come with a lot of ugliness, but it for portability it is probably still the best choice.
I'm not saying whether a rewrite is a good idea at all though, just wanted to put this here...