如果它是"一次编写运行",为什么这么多Java程序告诉我选择我的操作系统的版本?

Tom*_*Tom 4 java programming-languages

我对Java或编程很新.在我通过互联网来掌握这种语言的旅程中,我提出了"多次在任何地方运行"的说法.

但我发现许多软件要求您为您的操作系统选择合适的版本.有时只有一个版本可用.

你能解释一下为什么会这样吗?

Jer*_*vel 6

[根据评论扩大]

Java在虚拟机JVM上运行.在理想的世界中,这意味着操作系统在此背后被抽象出来,您只需要确保您的代码与JVM一起工作,这将使其与底层操作系统一起工作.这可以通过使用错误的路径分隔符或行结尾来撤消; 这不是绝对真理.

应用程序可以使用许多特定于操作系统的方法/库/函数/等,这可能使您无法将自己限制在一个通用代码库中.相反,他们可能希望利用平台提供的一些优势,并使用它创建单独的应用程序.

声明可能应该是"以一般方式写一次,随处运行"这一点,但这并不像那么活泼.

这个语句通常与Java相关联,但也有其他语言包含这些:Javascript和HTML等网络语言可以在任何浏览器上运行,因为浏览器本身构成了语言和底层操作系统之间的抽象.

其他语言没有(完全?),因为它们的工作方式不同:C#将使用底层的.NET框架,因为它仅适用于Windows.存在一个跨平台变体(Mono),但考虑C#真正的跨平台将是一种夸大其词.