![什么是java虚拟机,和Java有什么关系?](https://linux22.com/image/1485423/%E4%BB%80%E4%B9%88%E6%98%AFjava%E8%99%9A%E6%8B%9F%E6%9C%BA%EF%BC%8C%E5%92%8CJava%E6%9C%89%E4%BB%80%E4%B9%88%E5%85%B3%E7%B3%BB%EF%BC%9F.png)
我试图在我的 Macbook Air 上安装 eclipse。当我运行安装程序时,我收到此消息
似乎没有像其他应用程序一样专门针对 JVM 的官方页面。当我搜索“安装 jvm”时,我被引导到“下载 java“ 页。
无论如何,我从此页面安装了最新的 Java,但消息仍然存在,这让我更加困惑。
问题是:
如果 JVM 的目的是“在任何地方”启用 Java,那么在我安装最新的 Java 之后它不应该已经安装了吗?
当我在 Google 上搜索时,会出现很多页面,但没有一个看起来像真正的页面,我甚至
jvm
在 java.com 上搜索,但没有出现任何有用的信息。为什么找到如此流行的工具如此困难,我到底应该去哪里下载 JVM?
答案1
什么是 JVM?
Java 虚拟机 (JVM) 是一个运行 Java 字节码的解释器。
当您编译 Java 程序时,输出是 Java 字节码,然后可以由任何具有本机 JVM 的计算机执行。
在 Java 编程语言中,所有源代码首先都写在以 .java 扩展名结尾的纯文本文件中。
然后,这些源文件被 javac 编译器编译成 .class 文件。
.class 文件不包含处理器原生的代码;而是包含字节码 - Java 虚拟机 (JVM) 的机器语言。
然后,Java 启动器工具使用 Java 虚拟机实例运行您的应用程序。
由于 Java VM 可在多种不同的操作系统上使用,因此相同的 .class 文件能够在 Microsoft Windows、Solaris™ 操作系统 (Solaris OS)、Linux 或 Mac OS 上运行。
一些虚拟机(例如 Java SE HotSpot at a Glance)会在运行时执行额外步骤来提高应用程序的性能。这包括各种任务,例如查找性能瓶颈和重新编译(为本机代码)常用的代码段。
那么如何下载 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 的新路径(见上文)。
答案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 并查看输出的第一行,您就会看到版本。