That's because they aren't fully compiled. Java is an interpreted language, so the Java virtual machine has still to take the program's code and translate it to the cpu architecture to be used. And so, you need different versions of jvm to run on different cpus and os. Besides, it needs extra cpu power, because it works just like in emulation - you have to translate the commands.
As PCSX2 is a precompiled program, wich is absoultely needed in order to get any performance, it has to be compiled for a especific os/arquitecture. Using only standard c, or code that exists in both linux and windows c compilers, you can make it so it's not that hard to compile almost the same code for both os, and you can branch the code in problematic spots. But since it uses x86 assembly, wich means exact cpu instructions, you must use an x86 computer (pentium and similar intel's, athlon and similar amd's, etc) to run it. So in short, no
