我试图了解Nashorn和V8之间是否存在一些根本区别。除了前者在JVM中使用并且后者在Node / Browser中使用之外,这些JavaScript引擎之间的主要区别是什么?
它们可以互换吗?即是否可以在浏览器中使用Nashorn,在JVM中使用V8?
V8开发人员在这里。我对Nashorn几乎一无所知,因此无法进行全面比较。
根据Wikipedia,Nashorn是用Java编写的,因此可以在JVM上运行。 V8用C ++编写并编译为本地代码。出于实际目的,这是一个非常根本的区别:Chrome和Node.js都不包含JVM,因此它们无法运行Nashorn。另一方面,V8肯定不是JVM中Nashorn的直接替代品,因为它将需要非常不同的机制来在Java和JavaScript世界之间建立桥梁。因此,正如@Pointy所说,我不会称它们为“可互换的”。
(“可能”是一个非常模糊的问题。在软件中,如果您愿意编写或重写足够的代码,那么从技术上讲什么都是可能的...您的唯一限制是退休前的年限。如果您的问题是这是“轻松可能”,那么答案是响亮的“否”。)