我是Java的新手,有人澄清我对平台无关性的疑问,我知道Java是独立于平台的语言,JVM是平台相关的,但是独立于Java编译器平台?是Javac是独立于平台
回答
有涉及您的问题四大要素:
- 为你的程序
- javac编译
- ,当它编译源代码的编译器生成的字节代码的Java源代码
- 执行字节码以运行程序的Java虚拟机(JVM)。 (这是在键入
java MyMainClass
时运行的程序。)
项目1和3与平台无关(除非程序使用平台相关的外部库)。第2项和第4项是依赖于平台的(即每个平台 - Windows,Linux,Mac等 - 使用它自己的javac版本和JVM)。
结果是,您可以在任何运行javac的平台上编译您的Java程序,然后在相同平台或任何其他具有JVM的平台上执行程序。
没有javac
不是独立于平台,每个平台都有的javac
自己的可执行文件的形式,即你不能在Linux的JDK复制到Windows和期望它的工作
@AnandMishra - 那么请高举答案。赞成评论更好。 – TheLostMind 2014-09-04 05:42:07
谢谢@Jigar Joshi为你解答。 – Linguistic 2014-09-04 05:49:18
downvoter在这里留下原因 – 2014-09-04 05:51:02
技术上,JVM不平台无关,你必须下载这些工具的平台特定版本。 java编译器生成与平台无关的字节代码(.class文件)
java编译器的(实现)不是平台独立的。它将源代码编译为平台相关的字节码,由执行的平台相关的 JVM。
在窗口javac
似乎在.exe
格式,这意味着它是平台相关的。每个平台都有不同的java编译器。
- 1. 是Runtime.getRuntime()。exec()平台独立的吗?
- 2. .pyc平台是独立的吗?
- 3. Eclipse平台是独立的吗?
- 4. C++ std库平台是独立的吗?
- 5. .winmd文件平台是独立的吗?
- 6. Silverlight平台是独立的吗?
- 7. 独立于平台的OSGi控制台
- 8. 平台独立流
- 9. 什么是独立于平台的访问SBO的方式?
- 10. .NET是独立于平台/架构的“双重”算法吗?
- 11. 独立于Java的usb输入平台
- 12. 独立于平台的屏保与Qt
- 13. 独立于平台的资源管理
- 14. 独立于平台的时间计算
- 15. #ifdef用CMake独立于平台的DEBUG
- 16. Python中的SFTP? (独立于平台)
- 17. 独立于平台的付费安装
- 18. 独立于平台的/ dev/C++中
- 19. Java平台独立性
- 20. GenericPortlet - FileUpload平台独立
- 21. 平台独立的c + + DLL
- 22. 平台独立.proj文件
- 23. 在独立于平台的设计中传递特定于平台的数据?
- 24. 目标文件平台是独立的吗?
- 25. JavaFX的默认字体平台是独立的吗?
- 26. 是否有可能使C/C++平台独立
- 27. sqlite3数据库是平台独立的吗?
- 28. 序列化文件平台是独立的吗?
- 29. 设计“独立于平台”的GWT服务器的最佳方式是什么?
- 30. 独立于C数学库和平台独立的Python数学库?
谢谢@Ted Hopp清除解释 – Linguistic 2014-09-04 05:51:33