我脑子里有一个问题,我应该注意到我知道JDK和JRE之间的区别。我不是Java的新程序员。
我想问的是在Eclipse中我可以在窗口中指定编译环境(如果我错了,请更正我)>偏好,但我们也可以为特定项目更改它。
行。我在选项中添加了jre和jdk文件夹。我可以同时使用两者。 但是JRE没有javac(没有java编译器)。那么有些项目是否有可能需要将jre1.7更改为COMPILE? 我得到一些minor.major版本错误并设置JRE解决了我的问题?
这怎么可能?
事实上,现在我意识到了什么。 好的问题稍有改变。 我看到这些是VM而不是编译器。我明白了。
JDK中还有JRE吗?所以,如果我指定JDK1.8,我将jre1.8设置为VM,如果指定JRE1.7,我将jre1.7设置为VM?
是不是?
这令人困惑。为什么JDK里面有JRE?
答案 0 :(得分:3)
JDK里面有完整的JRE(常规Java VM),以便您可以运行用它开发的内容。
理论上,有人可以使用工具而不使用JRE来制作一些小型JDK,但是对于哪个工具版本运行哪个JVM版本(大多数JDK工具需要运行JVM)会更加混乱。看着你,有多少人只有这个问题?所以它被捆绑在一起,工具和JRE作为一个整体命名为JDK,这要归功于你可以保证那些JRE和工具能够协同工作。
JRE - Java Runtime Environment - 允许您运行java程序
JDK - Java Development Kit - 允许您运行和开发Java程序
JDK = JRE +开发者工具
另请注意,您可以为java编译过程选择两件事:
与源版本的兼容性 - 这基本上是您可以使用的语法。
与VM版本的兼容性 - 这是您可以运行已编译二进制文件的最低VM级别。
您的帖子中的示例:如果您已经编译了Java 8,那么您无法在Java 7上运行它,这是您遇到的次要/主要版本问题。但相反(在Java 8上为Java 7运行的东西)是有效的。
在您的示例 JDK8 和 JRE7 中,两者都只是功能齐全的VM,但JDK8还有(与JRE相比)其中的开发工具。< / p>