当然不可能存在,即使有也是借助了各种容器。
Windows和Linux是不同体系的操作系统,底层的实现是完全不同的,怎么可能做出完全兼容Windows和Linux操作系统的应用软件呢?
就是相同体系不同发行版的Linux操作系统都不能相互兼容,目前Linux体系分为Redhat和Debian两种类型,制作的安装包都是不兼容的,Redhat使用的是RPM安装包,而Debian使用deb安装包。
无法兼容的原因是底层的实现是完全不同的,其中也包括应用的管理体系,Windows和Linux的API是完全不同的,而RPM和deb是管理方式不兼容。
提供与平台无关的容器,让程序跑在容器上。
这样就只需要定制各个平台都不相同的专用jvm、专用容器。
搞笑的是很多人以为Java还真可以跨平台呢,只能说Java给各个操作系统都提供了功能类似的容器。
跟Java相同做法的语言很多,比如Python、Ruby等,而scala、clojure、groovy等语言干脆连自己开发虚拟机都省了,直接利用Sun开发好的虚拟机。
代码是一样,只是需要到处编译而已,如果要提供Windows版本则在Windows系统编译打包,如果Linux需要,则在Linux平台编译打包。
但是千万要注意不要调用了平台专用的API。
联系客服