我相对于Java或编程来说还是新手。在通过互联网掌握这门语言的过程中,我多次遇到“一次编写,到处运行”的说法。
但我发现许多软件需要您选择适合您操作系统的正确版本。有时只有一个版本可用。
您能否解释一下为什么会这样呢?
我相对于Java或编程来说还是新手。在通过互联网掌握这门语言的过程中,我多次遇到“一次编写,到处运行”的说法。
但我发现许多软件需要您选择适合您操作系统的正确版本。有时只有一个版本可用。
您能否解释一下为什么会这样呢?
Java 运行在虚拟机 JVM 上。在理想情况下,这意味着操作系统被抽象化,并且您只需确保代码与 JVM 兼容即可使其与底层操作系统一起工作。但是,使用错误的路径分隔符或行结尾可能会使其无效;这不是绝对的真理。
应用程序可能会使用许多特定于操作系统的方法/库/函数等,这可能使将自己限制在一个通用代码库中不可行。相反,他们可能希望利用平台提供的某些优势并创建一个单独的应用程序。
该语句可能应该是类似于“以通用方式编写一次,然后在任何地方运行”,但这不太简洁。
这个语句经常与 Java 相关,但还有其他语言也包含了这个概念:像 Javascript 和 HTML 这样的网络语言将在任何浏览器上运行,因为浏览器本身形成了语言和底层操作系统之间的抽象。
其他语言可能没有(完全?)这种功能,因为它们的工作方式不同:C#将使用底层的 .NET 框架,由于该框架仅适用于 Windows,所以 C# 的跨平台变体(Mono)存在,但将其视为真正的跨平台可能有些过分夸张。
一些东西确实是跨平台的(大部分标准Java库),而另一些东西可能需要适合特定操作系统版本。通常,这适用于使用动态库且未使用Java编写的软件。在这种情况下,不同操作系统版本都会搭载适用于该操作系统的库。
如果只有一个操作系统的版本 - 可能是因为其他操作系统缺少所需的库,或者开发人员没有进行移植。仍有可能它实际上是跨平台的,但开发人员只在一个操作系统下进行了测试。
你的问题更多地基于平台依赖性/独立性。
Java是一种编程语言,它是平台无关的,这意味着你编写的代码将在运行Windows、Linux、Unix等所有机器上产生相同的输出,而不需要对代码进行任何更改。要运行Java程序,你需要安装JVM(Java虚拟机)。那么JVM是做什么的呢?它将你的代码转换成操作系统能够理解的机器码。因此,JVM是平台相关的,因为每个操作系统都有不同的机器码。
因此,基本上你只需编写一次Java程序,就可以在任何地方使用/运行。
你可以在一个平台上编写源代码,然后在任何地方运行它。有时候,如果有新的Java版本可用,但当前版本仍然可以运行代码,你可能会遇到问题。