Well you already have information wrong...
"It is the only compiled language with cross-platform compatibility"
All complied languages have cross-platform comparability, that's the entire point of higher level languages. They compile programs down to an object file...which is basically a mapping of your code into that machines assembler language...then when you call the linker you get an actual program. The purpose of a compiled language is to use a level of abstraction between the programmer and the machines language...so you could write code once, and compile it many different times across different types of systems.
The only difference with java, is it compiles down into bytecode...which is run by a virtual machine (the java runtime environment)...which is probably what someone told you. So, the big difference is that you no longer have to rely on libraries that exist on one type of system. Within the past few years, they have went away from OS defined window libaries and actually defined their own...so if you use the right library, your java program should look the same across all systems it runs on.
Now, as for your question, ask people why they don't like it. While you are at it, ask them what the difference between the top down paradigm and the object oriented paradigm is. Ask them what the concept of design patterns is for...hell ask them what the hell paradigm means. More than likely a ton of people wont know the answers to these questions, so they are probably making arguments that stem from ignorance on the subject.
Also, relating to your comment on the desktop java not being the java on the web makes it seem like you don't really have a good understanding of what java is. You can develop "java for the web" type of stuff pretty easily on a desktop computer running the JDK...it's called a javaapplet. They also have the concept of a java server page, but you can look that up on your own if you are interested.