运行V8 JavaScript引擎独立版

132

我想在V8上运行一个JavaScript控制台。我该怎么做?

10个回答

121

V8易于构建,不会带有Mozilla独立Javascript解释器中的Java VM开销。幸运的是,V8附带了用于构建控制台的代码。以下是构建此功能的方法:

$> 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
function foo(x) { return x * x; }
> quit()

从命令行执行Javascript:

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

许多其他功能在帮助文档中有详细说明:

$> ./v8-shell --help
Usage:
...

9
谢谢您的指导和明确的说明。在Ubuntu 10.04下,我需要在g++命令中添加选项-lpthread - intuited
1
在Ubuntu上,Scons对我来说失败了,但运行sudo apt-get install libc6-dev-i386解决了这个问题。 - Thorsten Lorenz
2
如果您在 x86_64 上,请执行:'scons arch=x64',直到在主干中修复此问题。http://code.google.com/p/v8/issues/detail?id=429#c1 - EdH
4
请注意,此v8-shell仅作为玩具示例。"真正的" v8 shell称为d8。有关详细信息,请参见我的答案。 - bukzor
2
获取源代码的方法似乎已经改变。请参见此处 - Colliot
显示剩余3条评论

61

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

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=x64console=readline选项启用readline系统,使其感觉更像标准shell。

更完整的文档请点击这里:http://code.google.com/apis/v8/build.html


注意:

enter image description here

另请参见:使用GYP构建v8


9
在64位Ubuntu上构建时,我不得不添加arch=x64 - projectshave
@Hugh:它启用了readline系统;这使您可以使用向上箭头获取先前的命令,以及其他方便功能。 - bukzor
构建完成后,通过输入“./d8”来运行shell。 - Mathias Bynens
在Ubuntu 12.04上:致命错误:readline/readline.h:没有那个文件或目录 - 有什么想法吗? - pguardiario

44

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

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


例如,在Mac OSX上,如果已安装Homebrew,只需运行以下命令:

    $ brew install node
    $ node
    > 

1
在我看来,当涉及到JavaScript控制台时,Node.js是新的事实标准。它使用v8引擎,可能是用于此的最佳选择。 - Tracker1

24

在 Mac OS X 上,请确保已经安装了brew。然后只需运行命令(sudo) brew install v8,根据您的机器配置不同,这可能需要一些时间。要启动 V8 控制台,只需运行v8 - 就这么简单!

提示:要退出控制台,只需运行quit(),别忘了括号!


1
或者按 Ctrl-D 退出 :) - Dogbert
或者按 Ctrl-C 来终止它。 - Braden Best
你可以自己构建V8,而且很简单,使用brew就太麻烦了。 - b01
5
“brew install v8” 为何繁琐? - Devan Buggay

6
我认为这可能已经改变了。我阅读了手册,按照以下方式构建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

我在我的 .bashrc 文件中添加了 export PATH=${PATH}:/home/moose/Downloads/v8-trunk/out/ia32.release 来增加路径。

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
一页满是回复,而你的回复却被最少关注,却包含了我所需要的最终建议。 - Seth Difley

5

按照您系统的构建说明(Google 的 V8 构建文档)进行操作后;

[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(在新的终端或shell中 - 重新加载bash配置文件),可以调用v8 shell。在命令提示符下使用JavaScript! :)

4

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


4
如果您使用的是ArchLinux,可以使用pacman -S v8来安装它。 然后在Shell中使用d8启动它。 享受它吧。

1
似乎该软件在AUR上,因此无法使用pacman安装。 - Colliot

2
如果你计划嵌入V8,那么一定要构建它并使用"d8"进行测试。
另一方面,如果你不打算扩展V8或将其视为可选项,则只需使用Node.JS。不要费心用纯V8。
Node.js具有非常丰富的I/O、扩展和库(如Perl CPAN、Python Eggs、Ruby Gems)以及社区支持。

你不需要使用node.js,它只是一个包装器和额外的依赖项。 - b01

0

如果您使用的是Windows:

  1. 安装MSYS2
  2. 从开始菜单打开MSYS2终端。
  3. 安装编译器:pacman -Syu mingw-w64-i686-toolchain
  4. 安装v8:mingw-w64-i686-v8
  5. 验证您的路径中是否有d8作为新的解释器。
  6. 如果您想在MSYS2外运行d8,则必须将msys2/mingw/bin添加到Windows路径中
测试
  1. 导航到c:\msys2\home\user\
  2. 创建一个test.js文件
console.log('Hello You!');
console.log('Would you tell me your name?');
const name = readline();
console.log('Hello '+name+' !!');
  1. 运行:d8 test.js

您也可以从这里下载二进制文件,并使用PeaZip解压缩。

祝您好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接