I've been a Java fanatic like I've discussed in my previous blogs. So while developing Apps. and working on my projects I sometimes do sit back and ponder whether the same would work on platforms other then "Microsoft Windows". My transition across several semesters and experience of working on projects have now yielded the answer to my question....
So here it goes.....
---> Firstly, I it is very clear that Java by build is platform independent but if you develop applications on it, it is very much obvious that you'll be using some features pertaining to a specific OS say Windows. So in that case the same won't work on Linux or say some other OS. Hence most of the Apps. made in Java are surely not going be platform independent in that view.
Limewire (Both the binaries for Windows and Linux are different)
Your Application wants to make a registry change in Windows using a DOS command (i.e. reg).
Now the above is just not possible in any other OS.
So I can surely conclude that the main logic and the part of the Application which is totally not specific to the OS is platform independent in case of Java. Rest of all is "theoretically" platform independent.
---> Secondly, I'm not sure how many people how tried this but a ".class" file of JDK 1.5 is not compatible in JDK 1.6.12 and vice-versa. The only possible solution is to recompile it back again in the new JDK and then run or make a portable JAR file.
So here again the version of JDK and the corresponding JVM limits the virtue of platform independency.
---> Thirdly in my view, the JVM(Java Virtual Machine) takes a lot of time to get loaded into memory which is a pain in one form which literally slows down Java programs.