我听过维基百科引用的一些内容:
JVM与集合一起分发 标准类库的 实现Java应用程序 编程接口(API)。 形成捆绑在一起的适当API Java运行时环境(JRE)。
Adobe Integrated Runtime,也称为 作为Adobe AIR,是一个跨平台的 Adobe开发的运行时环境 构建富Internet的系统 使用Adobe Flash的应用程序(RIA), Adobe Flex,HTML和Ajax,可以 作为桌面应用程序运行。
.NET Framework(发音为dot net)是一个软件框架 Microsoft Windows操作系统。 它包括一个大型图书馆 支持多种编程语言 它允许语言互操作性 (每种语言都可以使用写的代码 其他语言)。 .NET库是 可用于所有编程 .NET支持的语言。
如上所述,如果我理解正确,前两个似乎与“运行时环境”有关,但没有相关的维基百科来解释“运行时环境”是什么。
第三个被称为“软件框架”,其中a Wikipedia article为:
软件框架是一种抽象 其中通用代码提供通用代码 功能可以有选择性 被用户覆盖或专门化 代码,从而提供具体的 功能。框架是一个 中国软件图书馆的特例 它们是可重复使用的抽象 代码包含在一个明确定义的 应用程序接口 (API),但它们包含一些关键 区分的特征 来自普通图书馆。
所以我的问题是:
谢谢和问候!
PS:我不知道这篇文章是否更适合超级用户或者stackoverflow,因为安装某些软件时经常需要这三个例子,而且它们似乎也提供API对于软件开发人员。
答案 0 :(得分:10)
没有。运行时环境基本上是在机器上运行的虚拟机 - 提供机器抽象。它通常比图书馆低。框架可以包含运行时环境,但通常与库绑定。
Java,AIR和.NET(在本例中为公共语言运行时)在运行在操作系统之上的某个字节代码中各有自己的运行时。它允许代码非常便携,无需重新编译就可以这样做。
库和API用于制作新程序。运行时环境是程序运行的地方。
运行时环境确实与虚拟机的概念一致,尽管不像VMWare那样复杂或其他。他们都将抽象底层系统的目标分享到其他软件可以在其上运行的目标。
答案 1 :(得分:7)
“运行时环境”和“软件框架”是一回事吗?如果没有,它们如何区别,它们属于某种常见类别吗?
不,不是真的。 “运行时环境”通常指的是实际执行代码本身的核心技术。在Java中,这将是JVM - 在.NET中,CLR。 “框架”通常是指默认分发的库套件。
它们都是编程库/ API,程序员可以使用它们来开发自己的软件吗?
这更像是“框架” - “框架”默认提供API。
安装某些软件时经常需要这三个示例。它们属于虚拟机的概念吗?如果不是,它们属于哪个类别?该类别与虚拟机有何不同?
虚拟机是“运行时环境”的一种形式 - 这是Java和C#用于其运行时环境的。
由于您通常将两个事物安装在一起,因此产生了混淆 - 因为没有一些基本库(框架),运行时环境几乎没用,并且没有运行时环境,框架就什么都不做(因为后者需要执行基于代码的操作在框架上。)