2012-02-24 48 views
1

http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3-download-1501626.html为什么java JDK为所有操作系统提供选项?

我们知道,Java是一个平台独立的语言那么为什么这个网站,如Linux,Windows中的Solaris操作系统都提供的JDK?

那么我们为什么告诉java是平台无关

+10

因为JVM不是平台独立的! – 2012-02-24 13:12:46

+0

因为JVM没有在JAVA中实现,但可能大部分是C/C++ – Rekin 2012-02-24 13:15:05

+1

为什么所有的downvotes?这真的是我见过的最荒谬的论坛。有人只是在问一个问题,他们不知道。为什么要让每个人都只是问一个问题,如果这个问题是非常基本的? – 2012-02-24 13:23:34

回答

4

它是这样的:

 your application   
    ---------------------  
      JAVA on OS1   
    --------------------- 
      OS1 
    --------------------- 
     hardware 
    --------------------- 

,如果你写你对Java之上的应用程序,那么你可以将你的java 应用程序按原样,不改变它,甚至编译,新OS,因为 你的程序是写在一个平台上的,而不是本地操作系统。

因此,您需要为您的操作系统下载特定的Java。但从应用角度来看,它是一样的API。 Java使你的应用程序平台独立,因为它隐藏了你的应用程序的操作系统。但是Java本身必须针对每个特定的操作系统进行编译和构建。但应用程序不关心这一点。应用程序看到相同的API。这是整个观点。

+0

+1不错的解释 – 2012-02-24 13:29:46

1

要简单地解释你,当你从一个OS移动你的代码到另一个OS时,你不需要编译你的java源代码,但是为了运行你编译的java代码,你需要有特定于操作系统的Java运行时计算机。这就是为什么你对不同的操作系统有不同的JDK。

4

因为在那里您下载Java虚拟机的安装程序。这是运行Java应用程序的环境。

Java与操作系统无关的原因是因为它运行在此JVM中。

+0

“vor”,“Maschine”,“Applikation”... [原文如此...您正在使用的语言是“Germanglish”还是什么!? ; ) – TacticalCoder 2012-02-24 13:18:24

+0

我更喜欢称之为“Denglish”:)。无论如何,我对这些错别字感到抱歉。 – TooR 2012-02-24 13:26:24

+1

不用担心:我是一个法语母语的人,偶尔也会做一些很好的“frenglish”拼写错误; ) – TacticalCoder 2012-02-24 15:11:51

2

JVM的工作是隐藏平台之间的差异,并为应用程序代码提供相同的执行环境,而不管平台如何。

JVM用C++编写,并被编译为本地二进制文件,就像任何其他C++应用程序一样。 (毕竟,你不会期望一个.exe文件在Linux上运行)。

因此,JVM是平台特定的,但它提供的环境不是。

1

要添加到其他答案中,Java是合格的平台,因为您编写的代码应该适用于每个平台。事实并非如此。 Java代码总是以相同的方式在字节码中编译,但JVM在OS的函数中以不同方式解释这个常见字节码,每个OS有一个JVM。没有JVM实现来使用字节码的OS不能支持Java。

相关问题