独立运行V8 Javascript引擎


Answers:


115

V8易于构建,并且没有Mozilla的独立Java解释器带来的Java VM开销。幸运的是,V8附带了用于构建控制台的代码。这是构建方法:

$> svn co http://v8.googlecode.com/svn/trunk v8-trunk
...
$>光盘v8-trunk
$>骗局
$> g ++ ./samples/shell.cc -o v8-shell-我包含libv8.a 

现在,我们有一个名为的独立二进制文件v8-shell

运行控制台:

$> ./v8-shell 
V8版本2.0.2
> var x = 10;
> x
10
>函数foo(x){return x * x; }
>富
函数foo(x){return x * x; }
> quit()

从命令行执行Javascript:

$> ./v8-shell -e'print(“ 10 * 10 =” + 10 * 10)'
10 * 10 = 100

帮助中记录了更多功能:

$> ./v8-shell-帮助
用法:
...

9
感谢您的提示和明确的指示。我必须在ubuntu 10.04下-lpthreadg++命令中添加该选项。
直觉

1
scons对我在Ubuntu上失败了,但是运行sudo apt-get install libc6-dev-i386解决了这个问题。
Thorsten Lorenz

2
如果你在x86_64做:“scons的ARCH = 64”,直到其固定在树干code.google.com/p/v8/issues/detail?id=429#c1
EDH

4
请注意,此v8外壳旨在作为玩具示例。称为“真实” v8 shell d8。查看我的答案以获取更多信息。
bukzor 2011年

2
用于获取源代码的方法似乎已更改。看这里
Colliot

59

要构建开发人员控制台,而不是示例“外壳”玩具应用程序,请将以下命令复制并粘贴到您的终端。

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。对于其他发行版,您将需要用任何可用的软件包工具替换apt-get命令。在64位系统上,您可能需要添加arch=x64。该console=readline选项启用readline系统,使其感觉更像是标准外壳。

此处提供了更完整的文档:http : //code.google.com/apis/v8/build.html


注意:

在此处输入图片说明

另请参阅:使用GYP构建v8


9
我必须添加arch=x64以在64位ubuntu上构建。
projecthave

@Hugh:启用readline系统;这就是使您可以使用向上箭头获取上一个命令的方法,以及其他一些优点。
bukzor 2011年

构建完成后,通过输入运行外壳./d8
Mathias Bynens'2

在Ubuntu 12.04上:致命错误:readline / readline.h:没有这样的文件或目录-有任何想法吗?
pguardiario

44

如何使用node.js通过命令行运行V8 Javascript ?

node.js使用v8作为其引擎,并在其之上添加了许多功能。


例如,在Mac OSX上,如果您安装了Homebrew,只需发出:

    $ brew install node
    $ node
    > 

1
当涉及到JavaScript控制台时,IMHO node.js是新的事实上的标准。它使用v8,可能是为此使用的最佳选择。
Tracker1 2013年

23

在Mac OS X上,请确保已brew安装。然后只需运行命令(sudo) brew install v8,这可能需要一些时间,具体取决于您的计算机。要启动V8控制台,只需运行v8-Voilà!

提示:要退出控制台,只需运行即可quit(),不要忘记括号!


1
或按一下Ctrl-D即可退出:)
Dogbert

还是Ctrl-C杀死它
Braden Best 2013年

您可以自己构建v8,它很简单,使用brew太麻烦了。
2014年

4
“ brew install v8”如何繁琐?
Devan Buggay,2015年

5

我认为情况可能已经改变。我阅读了手册,然后像这样构建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)


2
一个包含您的反馈的页面(最不被重视)包含了我需要的最终建议。
赛斯·迪夫利

4

按照系统的构建说明(Google的V8 Build Docs)进行操作之后;

[v8 directory]$ cd out/native
[v8 directory]$ ./shell (sample shell)
[v8 directory]$ ./d8 (console: dumb)

我在.bash_profile中创建了一个别名,以方便Shell的调用。

alias v8='/Volumes/Dev/GitHub/v8/out/native/shell'

在CLI上键入v8(在新的终端机或外壳程序中-重新加载bash配置文件)将生成v8 shell。命令提示符下的JavaScript!:)


3

如果使用ArchLinux,则可以使用pacman -S v8它进行安装。然后使用d8它在您的外壳中启动。好好享受。


1
这似乎在AUR上,因此无法与pacman一起安装。
Colliot

3

如果您想使用v8引擎或其任何版本运行javascript源代码,则可以使用jsvu命令行工具。它由Google工程师开发和维护,此外,它还提供安装除v8之外的其他JavaScript引擎的功能,例如spidermonkeychakracorejavascriptcorexs


2

如果您打算嵌入V8,则一定要构建它并使用“ d8”。

另一方面,如果您不打算扩展V8或将其视为可选,则只需使用Node.JS。不用担心纯V8。

Node.js具有真正丰富的I / O,扩展,库(例如Perl CPAN,Python Eggs,Ruby Gems)和社区。


您不需要使用node.js,它只是一个包装器和额外的依赖项。
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.