2009-07-20 33 views

回答

7

我不认为你可以直接把一段JavaScript到使用V8的可执行文件,但你也许可以作出这样的捆绑V8引擎使用JavaScript并运行它作为一个独立的应用程序。

你可以找到关于V8上its project page的所有信息。

还要注意JavaScript不能完全编译,因为它是一种动态语言。使用V8,它是JIT编译的(例如.NET)。尽管它仍然可以变成独立的可执行文件(例如.NET)。

如果您想开发独立使用HTML进行渲染的应用程序,您也可以看看Adobe Air

+0

我正在尝试做其他事情。 如何将JavaScript绑定到exe然后? – 2009-07-20 08:53:30

+0

请参阅V8项目页面的“嵌入”部分。 – Blixt 2009-07-20 08:55:01

6

JavaScript不能被编译一次。该语言有eval这是相当广泛的使用。 (例如JSON)您需要随身携带JIT和整个运行时。这里

JIT只是一个优化,不能摆脱编译器/解释器的方式。

3

Node.js嵌入V8。这可能是一个很好的学习范例。

3

已经有几次尝试在做的js为本地代码,它不是东西,可以在生产中通过任何方式使用,更多的学术兴趣。 Java的Rhino解释器有一个选项可以将js变成(java)字节码,所以一种方法是转换为字节码,然后从字节码转换为GCJ原生。有关于Rhino和GCJ的一些讨论,但我不知道是否有人曾经尝试过。 https://groups.google.com/forum/#!msg/netscape.public.mozilla.jseng/c3tqyLZ19fw/8V4HeuMtIXUJ

另一种方法是使用Python,具体PY-PY其本身是用Python编写的非标准子集称为rPython。 rPython不适合人类消费,但它的好处是可以编译为本地语言。一个有趣的(虽然很古怪)实验是将JavaScript编译为Python,然后在某些情况下,Python恰好可以作为rPython使用,并且可以使用rPython编译器编译为本机。

http://mozakai.blogspot.com/2010/07/experiments-with-static-javascript-as.html

如果.exe文件是非常重要的,我会捆绑V8与您的应用程序,因为即使你可以编译JS原生,你还需要一个完整的解释,如果你使用任何的eval()或类似。只要用户不介意8MB EXE文件或8MB V8.dll文件,将所有内容捆绑到.exe文件中都不难。

作为最后的思想,大G已经开始允许基于铬(谷歌:“Chrome封装应用程序”),“原生”的应用程序。他们具有低级别的系统访问权限,并且可以使用WebKit渲染器,允许您使用CSS和HTML创建GUI,并且他们拥有自己的窗口和图标,因此它们在chrome中运行并不明显。这可能还为时过早,但在桌面应用程序领域需要密切关注。