Java真的是跨平台吗?

时间:2015-09-19 08:21:56

标签: java cross-platform

如今,我开始听到很多关于Java的内容。我知道这是因为它意味着跨平台。但是真的吗?

我们可以信任客户端安装JVM多少钱?我家里有很多关于Java的书,真的很想读它们。但每次同样的问题都会袭击我。我用Java开发的应用程序是否可以在大多数机器上运行?那不好吗?

一种方法是使用一些编译器将Java代码编译为本机机器代码。但这让我觉得,"为什么要使用Java?"

那么,跨平台学习Java是否值得?关于安装JVM的人的百分比的任何想法?

5 个答案:

答案 0 :(得分:1)

我想纠正你,人们不需要jre安装他们需要jvm。

由于Java仅依赖于JVM,因此它与平台无关(如果平台安装了JVM)。

但最重要的是,程序员不必了解平台的具体知识,并将其应用程序编程为一个特定的平台。他只需编写代码生成byteCode,其余部分由JVM处理,在任何其他平台上运行。

如果将java与其他语言进行比较,您将获得与In c / c ++中的确切区别,使用编译器编译后的源代码(c程序文件)将直接转换为本机机器代码(特定机器可以理解)在哪个你编译代码)。因此,c / c ++的编译代码无法在不同的操作系统上运行。

答案 1 :(得分:1)

  

如今,我开始听到很多关于Java的内容。我知道这是因为它意味着跨平台。但是真的吗?

是的,Java是跨平台的 - 或者更准确地说是可移植的。它运行在最常用的体系结构和平台上,通常无需修改,这使其成为最便携的语言之一。 (但请记住,您几乎可以用任何语言编写不可移植的代码,Java也不例外。)

  

我们可以信任客户安装JRE多少钱?

我们不能,但这几乎从来都不是问题。

大多数语言都需要运行时才能运行。 C语言(以及它的一些衍生产品,比如C ++)逃避了C运行时通常已经安装在操作系统中的事实。

对于大多数其他语言,我们相信最终用户至少愿意(甚至不一定能够)安装所需的运行时以运行我们(和其他人)的软件。如今,大多数软件(通常包括C ++软件)会在安装脚本中自动安装所需的依赖项。如果出于任何原因这是不可取的,另一种方法是在部署时将运行时与程序捆绑(静态链接)。

  

一种方法是使用一些编译器将Java代码编译为本机机器代码。但这让我觉得,“为什么要使用Java?”

并非所有编译为本机代码的语言都是相同的。它们具有不同的功能,不同的工具,可用的不同库等。

在任何情况下,请确保您不会将本机编译与任何依赖项(运行时或库)的静态链接混淆。

  

甚至,告诉我有多少人安装了JRE。

估计约有97% of enterprise computers and 89% of desktops in the USA运行Java。

答案 2 :(得分:0)

客户端需要JVM,而不是JRE。它们几乎可以在所有机器上运行。我没有百分比,但考虑到几乎每个主要操作系统都有可用的JVM,我会说大约95%(在我看来低估)。 Java肯定没有有限的受众,所以不应该阻止你使用Java。

根据Andreas的评论更新。我的印象是很多机器预先安装了Java。但是,JVM可以轻松下载,因此您仍然不必过多担心是否会错过大量的观众。

答案 3 :(得分:0)

我认为你混合了两个不同的概念:

跨平台:如果程序可以在不同平台上运行而不需要重新编译,则该程序被视为跨平台。

问:Java跨平台吗?

答:当然是。

原生应用:在目标平台上运行的程序,无需安装,下载任何其他软件。通常程序被编译成机器二进制文件。但是,在某些定义中,它可能包含非机器二进制文件的程序/脚本,但它的平台目标保证使用其内置库/软件运行它们。

问:Java可以在没有JVM的任何平台上运行吗?

答:不会。我知道任何平台都没有附带JVM,因此需要在任何Java程序运行之前下载并安装它。

  

一种方法是使用一些编译器将Java代码编译为本机机器代码。但这让我觉得,“为什么要使用Java?”

这完全取决于你想要达到的目标。如果你想创建本机应用程序,驱动程序等,那么Java肯定是错误的工具。但是如果你想创建一个可以在所有平台上运行而不必重新编译并为每个平台创建一个版本的应用程序,那么Java就是一个不错的选择。

  

那么,跨平台学习Java是否值得?关于安装JVM的人的百分比的任何想法?

同样,这实际上取决于你想要达到的目标。 Java是创建跨平台应用程序的好选择,值得学习。但是,您可能需要查看,比较和决定要学习的其他选项。 C#是一种很棒的语言,就在最近,微软宣布了它真正实现跨平台的计划,因此它是另一个不错的选择。

大多数PC都安装了JVM。 Theodoros Chatzigiannakis在他的回答中提供了一些统计数据。但你不应该太担心数字。那些没有安装JVM的人会愿意下载并安装它,如果他们喜欢你的应用程序。

注意:过去,您可以在Windows以外的平台上运行用C#编写的应用程序,但是您需要等效的.Net Framework(例如Mono)。随着微软最近宣布,我们应该能够在其他平台上使用Microsoft .Net Framework。我们将看到这将如何发展。

答案 4 :(得分:0)

Java是全球最常用的编程语言。在大多数情况下,最新的更新速度与c ++一样快。例如,45%的googles服务是用java编写的。几乎每个系统都能够安装jvm,因此运行java。所以,为了回答你的问题,它绝对值得学习java用于多平台目的。