从理论上讲,JAVA程序是否需要JRE进行编译?

时间:2016-04-02 20:28:39

标签: java import java-8

如果我们有一个独立的常规JRE,那么我们总是可以运行java程序但是我们不能创建java程序。我知道当你安装JDK时,包含了JRE。但只是为了清楚地理解这一点,在内部反过来也是如此。如果我有一个java程序,并且我只需要从中创建一个.class文件,那么JRE是否可以在其中扮演任何角色;是编译过程中涉及的JRE的任何组成部分,例如“import<>。<>。*”语句等。?

2 个答案:

答案 0 :(得分:3)

JRE(Java运行时环境)与许多组件一致,最重要的三个是:

  • JVM(Java虚拟机)
  • Java运行时库
  • java.exe(使用上述组件运行自定义Java代码的Windows 1 可执行文件)

JDK(Java Development Kit)与许多组件一致,最重要的三个是:

  • JRE(见上文)
  • Java编译器
  • javac.exe(用于运行编译器的Windows 1 可执行文件)

所以,关于主要问题:

  

JRE是否需要编译 Java程序?

嗯,不。编译Java程序只需要两件事:

  • Java编译器
  • Java运行时库

如果编译器本身不是用Java编写的,那么就不需要JDK或JRE。

但是,大多数Java编译器实际上都是用Java编写的,所以它们也需要一个JVM,如果你需要JVM和运行时库,获得它们的最好方法是获取JRE,尽管任何JVM都可以

那么,你需要JDK吗?不,你只需要一个JRE和一个编译器,那里有许多好的编译器,例如Eclipse编译器,这是Tomcat使用的,因此它不需要完整的JDK。

1)对于非Windows,当然是类似的java可执行文件。

答案 1 :(得分:1)

当你需要编译时,你只需要JDK,但是当你运行程序时,它需要JRE。如果程序需要在运行时编译,那么它需要两者。如果您只是编译程序,那么您只需要JDK,但是如果您的编译器是由java构建的,那么您需要JRE。这篇文章可以帮助Are both the JRE and the JDK required to run a JAR file?