实现的机制不同。
JAVA是基于JVM虚拟机的,JAVA代码被解释为字节码提供给JVM运行,JVM再根据字节码调用系统接口,所以它的跨平台要点是实现能运行在各个平台上的JVM。

其他的跨平台的高级语言是通过编译器实现的。
例如:DELPHI7的源码中有针对MS和LINUX平台的条件编译,在预编译的时候根据具体平台选择编译源代码的一部分。所以在LINUX平台下编译DELPHI源码就会得到KYLIX,在MS平台下编译就得到DELPHI。

上边说的是OS层面的跨平台,还有CPU体系的跨平台
比如,GCC支持编译生成多种处理器下的二进制代码。在编译的时候通过选择相应的处理器类型和恰当的库文件就可以生成不同体系下的比如X86,IA64,ARM或MIPS等的可执行文件

有什么跨平台的编程语言好用?

C#,主要是net core框架,linux上跑得飞快

开发跨平台的桌面应用用什么编程语言比较好

目前来说做桌面应用程序最好的是C#.Net,但是如果您要求跨平台的话,貌似只能选择使用java了。但是JavaSwing对于C/S架构的程序编写来说还是比较困难的。如果可能的话,尽量舍弃跨平台。