运行V8 Javascript引擎独立
我想在V8上运行一个Javascript控制台。 我如何做到这一点?
V8很容易构build,而且不会从Mozilla独立的Javascript解释器中得到Java VM开销。 幸运的是,V8附带了构build控制台的代码。 这里是如何build立这个:
$> svn co http://v8.googlecode.com/svn/trunk v8-trunk ... $> cd v8-trunk $> scons $> g ++ ./samples/shell.cc -o v8-shell -I include libv8.a
现在,我们有一个叫做v8-shell
的独立二进制文件。
运行控制台:
$> ./v8-shell V8版本2.0.2 > var x = 10; > x 10 > function foo(x){return x * x; } > foo 函数foo(x){return x * x; } > quit()
从命令行执行Javascript:
$> ./v8-shell -e'print(“10 * 10 =”+ 10 * 10)' 10 * 10 = 100
帮助中logging了更多的function:
$> ./v8-shell --help 用法: ...
要构build开发者控制台,而不是示例的“shell”玩具应用程序,请将以下命令复制粘贴到您的terminal。
sudo apt-get install subversion scons libreadline-dev svn co http://v8.googlecode.com/svn/trunk v8 cd v8/ scons console=readline d8
这些指令适用于Ubuntu / Debian的“通用”内核。 对于其他发行版,您将需要使用任何可用的软件包工具来replaceapt-get命令。 在64位系统上,您可能需要添加arch=x64
。 console=readline
选项启用readline系统,使其感觉更像一个标准的shell。
更完整的文档: http : //code.google.com/apis/v8/build.html
注意:
另请参阅: 使用GYP构buildv8
如何通过命令行使用node.js来运行V8 Javascript?
node.js使用v8作为引擎,并在其上添加了很多function。
例如,在Mac OSX上,如果您安装了Homebrew ,只需发出:
$ brew install node $ node >
在Mac OS X上,一定要安装brew
。 然后运行命令(sudo) brew install v8
,这取决于你的机器,这可能需要一些时间。 要启动V8控制台,只需运行v8
– Voilà!
提示:要退出控制台,只需运行quit()
,不要忘记括号!
按照系统的构build说明( Google的V8 Build Docs )
[v8 directory]$ cd out/native [v8 directory]$ ./shell (sample shell) [v8 directory]$ ./d8 (console: dumb)
我在.bash_profile中创build了一个别名,以方便调用shell。
alias v8='/Volumes/Dev/GitHub/v8/out/native/shell'
在CLI上键入v8(在新的terminal或shell中 – 重新加载你的bashconfiguration文件)会产生v8 shell。 JavaScript的命令提示符! 🙂
我想这可能已经改变了。 我阅读手册,并build立这样的V8:
moose@pc08$ svn co http://v8.googlecode.com/svn/trunk v8-trunk moose@pc08$ cd v8-trunk moose@pc08$ make dependencies moose@pc08$ make ia32.release
添加export PATH=${PATH}:/home/moose/Downloads/v8-trunk/out/ia32.release
到我的.bashrc
moose@pc08 ~ $ source ~/.bashrc moose@pc08 ~ $ d8 A_tic_tac_toe_Tomek.js < A-small-practice.in
(来自aditsu的 javascript和来自Google Code Jam的A-small-practice.in)
如果你使用ArchLinux,你可以使用pacman -S v8
来安装它。 然后使用d8
在你的shell中启动它。 好好享受。
如果你打算embeddedV8,那么一定要用“d8”来搭build它。
另一方面,如果您不打算扩展V8或将其视为可选,那么只需使用Node.JS。 不要打扰纯V8。
Node.js具有真正丰富的I / O,扩展,库(如Perl CPAN,Python鸡蛋,Ruby Gems)和社区。