Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否每个安装的程序都有一个默认编译器?_Java - Fatal编程技术网

Java 是否每个安装的程序都有一个默认编译器?

Java 是否每个安装的程序都有一个默认编译器?,java,Java,我不是以英语为母语的用户,我很抱歉英语不好,但我对编程非常感兴趣。 我的问题是:是否每个安装在特定操作系统上的程序都有一个单独的编译器,或者所有安装在该操作系统上的程序都使用默认的操作系统编译器? 谢谢。您的问题标有“java”。关于Java 您必须具有JRE才能运行java程序。JRE代表java运行时环境,它包括JVM(java虚拟机)和其他运行时单元。Java的特点是使用单个JRE来运行每个Java程序(更不用说版本等)。JRE将执行java程序 如果你想在你的计算机上创建一个java程

我不是以英语为母语的用户,我很抱歉英语不好,但我对编程非常感兴趣。 我的问题是:是否每个安装在特定操作系统上的程序都有一个单独的编译器,或者所有安装在该操作系统上的程序都使用默认的操作系统编译器?
谢谢。

您的问题标有“java”。关于Java

  • 您必须具有JRE才能运行java程序。JRE代表java运行时环境,它包括JVM(java虚拟机)和其他运行时单元。Java的特点是使用单个JRE来运行每个Java程序(更不用说版本等)。JRE将执行java程序

  • 如果你想在你的计算机上创建一个java程序,你应该有java SDK(软件开发工具包)。它包括compiter和其他必要且有用的工具。SDK可以将java源代码转换为可执行的java程序


如果问题是一般性的,例如,安装桌面应用程序时会发生什么,则取决于应用程序类型和安装程序类型

  • 有一些是随源代码一起分发的,将在安装阶段在您的计算机上进行编译。大多数情况下,他们拥有成功运行安装所需的一切,包括所有必要的编译器。在绝大多数情况下,在安装程序之前,您不应该在操作系统上预装一些东西

  • 但主要是一个程序作为二进制工件包分发。它们已经编译、打包并在此状态下交付。所以不,在这里,您的机器上不需要编译器


谢谢,但我想你没有理解我。问题是:例如,当您安装像巴比伦这样的桌面软件时,您会在安装文件夹中看到一些文件。它们之间是否存在编译程序的编译器文件(巴比伦),或者这些文件包含操作系统编译它们并运行程序的机器代码?@lotor你说过:有一些。。。你是说当我们下载一个软件时,实际上我们下载了源代码文件和编译器文件,当我们在安装过程中安装下载的软件时,实际上,编译器文件在运行时的安装过程中遵循这些源代码,并创建机器代码文件,每当我们打开已安装软件的*.exe文件时,这些创建的机器代码实际上是由操作系统运行的?我理解对了吗?请给我解释得更简单一些,因为我不是英语母语,如果你想的话,我不是初学者。还有一个问题。我知道要运行java编写的软件,我们需要在操作系统上安装jre和jdk。但我们知道像GeoGebra这样的软件是由java编写的。当你从互联网下载它时,你不需要安装jre或jdk,只需点击几下,软件就可以安装,你可以轻松地运行它,而无需任何预安装的jre或jdk。怎么可能呢?我看到了很多这样的软件的例子,它们运行在没有安装软件包的操作系统上。再一次谢谢你。你理解对了。但这些应用程序是非常罕见的类型,大多数是企业应用程序,而不是台式机应用程序。2.如果您的机器上已经有了JRE,那么它通常由JAVA_HOME系统变量指向。另一个选项在最近的java发布策略更改之前非常常见,应用程序安装程序在安装程序中有自己的JRE分发包。