什么是java虚拟机,和Java有什么关系?

什么是java虚拟机,和Java有什么关系?

我试图在我的 Macbook Air 上安装 eclipse。当我运行安装程序时,我收到此消息

在此处输入图片描述

似乎没有像其他应用程序一样专门针对 JVM 的官方页面。当我搜索“安装 jvm”时,我被引导到“下载 java“ 页。

无论如何,我从此页面安装了最新的 Java,但消息仍然存在,这让我更加困惑。

问题是:

  1. 如果 JVM 的目的是“在任何地方”启用 Java,那么在我安装最新的 Java 之后它不应该已经安装了吗?

  2. 当我在 Google 上搜索时,会出现很多页面,但没有一个看起来像真正的页面,我甚至jvm在 java.com 上搜索,但没有出现任何有用的信息。

    为什么找到如此流行的工具如此困难,我到底应该去哪里下载 JVM?

答案1

什么是 JVM?

Java 虚拟机 (JVM) 是一个运行 Java 字节码的解释器。

当您编译 Java 程序时,输出是 Java 字节码,然后可以由任何具有本机 JVM 的计算机执行。

在 Java 编程语言中,所有源代码首先都写在以 .j​​ava 扩展名结尾的纯文本文件中。

然后,这些源文件被 javac 编译器编译成 .class 文件。

.class 文件不包含处理器原生的代码;而是包含字节码 - Java 虚拟机 (JVM) 的机器语言。

然后,Java 启动器工具使用 Java 虚拟机实例运行您的应用程序。

在此处输入图片描述

由于 Java VM 可在多种不同的操作系统上使用,因此相同的 .class 文件能够在 Microsoft Windows、Solaris™ 操作系统 (Solaris OS)、Linux 或 Mac OS 上运行。

一些虚拟机(例如 Java SE HotSpot at a Glance)会在运行时执行额外步骤来提高应用程序的性能。这包括各种任务,例如查找性能瓶颈和重新编译(为本机代码)常用的代码段。

在此处输入图片描述

来源关于 Java 技术


那么如何下载 JVM?

Java 运行时环境 (JRE) 包含 JVM。

  • 如果您只是运行 Java 程序,JRE 就足够了。

Java 开发工具包是 JRE 的超集(因此它也包括 JVM)。它还包含开发 Java 程序所需的其他工具,例如编译器。

  • 如果您正在开发 Java 程序,则应该下载 JDK。

您可以在以下位置下载 JRE 和 JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html


那么为什么我会收到错误消息?

您已安装的 JVM 版本对于您尝试安装的 Eclipse 版本来说太旧。

为了获得较新的版本,您需要安装较新的 JRE 或较新的 JDK,它们都包含 JVM。


我已经从此页面安装了最新的 Java,但该消息仍然存在

解决您问题的一个潜在方法可能是卸载 Java6(由 Apple 自己提供),并在系统中仅安装 Java7。这仅适用于您没有迫切需要安装旧 Java6 版本的应用程序的情况。

要删除类似 Apple 的 Java6 安装,请打开终端并执行以下操作:

sudo rm -rf /System/Library/Java/JavaVirtualMachines/1.6.0.jdk

完成此步骤后,您的系统中应该只安装了 Oracle 的 Java7。要验证,请打开另一个终端并执行以下操作:

java -version 

它应该显示类似“java 版本“1.7.0_XX”的内容,其中 XX 是 Java7 安装的当前更新版本。如果没有:继续下一步。

重新定义JAVA_HOME变量(以支持 Eclipse 等 IDE 和其他开发人员工具...),这有助于检测系统中“活动” Java 安装在何处。打开终端并(笔记:先替换XX!):

sudo rm /Library/Java/Home

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_XX.jdk/Contents/Home /Library/Java/Home

之后,全新安装的 Eclipse 应该可以检测到系统中的 Java7,并且可以立即使用此版本。您可以通过在 Eclipse 中导航到以下位置来修改已安装的 Eclipse 以使用此安装:

Preferences-> Java-> Installed JREs

然后删除旧的 Java6 系统条目并添加名为 Java7 的新路径(见上文)。

来源答案我安装了 Java 7,但 Eclipse 一直说 1.6 不适合该产品经过威斯纳

答案2

有 JDK,它是 JVM 加上其他用于 Java 开发的东西 http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 您截屏的消息表明您已经拥有 JVM 1.6,但需要 1.7 或更高版本。但您不需要 JDK,因为它相当大。

这个链接说免费下载 Java,其中包括 JVM
https://java.com/en/download/ 谷歌表示 JRE 包括 JVM 和一些类。另一个选项是 JDK,它包括 JVM 和一些开发人员工具。您只需要 JRE,除非您是开发人员,否则您可以直接获取 JDK。无论哪种方式,您都会获得 JVM。

尝试转到 Mac 中涉及列出程序的任何部分,看看是否可以删除版本 1.6。似乎给出该消息的程序只看到 Java 1.6,而不是最新版本。您可以检查您的路径echo $PATH并尝试找出路径中的 Java 版本。

此命令在带有 gnuwin32 的 Windows 中运行

C:\Users\harvey>java -showversion 2>&1 | head -n 1
java version "1.8.0_11"

我认为它也可以在 Linux 或 Mac 上运行

$ java -showversion 2>&1 | head -n 1
java version "1.8.0_11"

或者只需 java -showversion 并查看输出的第一行,您就会看到版本。

相关内容