Java确实是跨平台的,而C++不是,其原因为Java并不直接编译为机器语言,而是先编译为中间语言。在各个平台上均有Java虚拟机,可以对此中间语言解释执行,所以说它是跨平台的。而C++是直接编译成机器语言的,这种语言在不同的机器上有不同的格式,同一个C++程序,由它所编译成的执行文件往往不能在另一个平台的机器上运行。
至于C++作为主流的编程语言,那是没错的,但它直接写出的是源程序,源程序是不可以直接运行的,我们买一个软件产品,是买它的可执行代码,而不是买它的源程序,比如:我们买一个游戏,应该直接能玩的,厂家给我们源代码,大部分的买家也是看不懂的。