独立运行 V8 Javascript 引擎

IT技术 javascript v8
2021-03-10 22:15:16

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

6个回答

V8 易于构建,并且没有来自 Mozilla 的独立 Javascript 解释器的 Java VM 开销。幸运的是,V8 附带了用于构建控制台的代码。以下是如何构建它:

$> svn co http://v8.googlecode.com/svn/trunk v8-trunk
...
$> cd v8-trunk
$> 烤饼
$> g++ ./samples/shell.cc -o v8-shell -I 包含 libv8.a 

现在,我们有一个名为v8-shell.

运行控制台:

$> ./v8-shell 
V8 版本 2.0.2
> 无功 x = 10;
> x
10
> 函数 foo(x) { 返回 x * x; }
> 富
函数 foo(x) { 返回 x * x; }
> 退出()

从命令行执行 Javascript:

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

帮助中记录了更多功能:

$> ./v8-shell --help
用法:
...
获取源代码的方法似乎发生了变化。这里
2021-04-20 22:15:16
如果你在x86_64做:“scons的ARCH = 64”,直到其固定在树干code.google.com/p/v8/issues/detail?id=429#c1
2021-05-02 22:15:16
感谢您的提示和明确说明。我不得不将选项添加-lpthreadg++ubuntu 10.04 下命令中。
2021-05-09 22:15:16
scons 在 Ubuntu 上对我来说失败了,但是运行 sudo apt-get install libc6-dev-i386 解决了这个问题。
2021-05-10 22:15:16
请注意,这个 v8-shell 旨在成为一个玩具示例。“真正的”v8 shell 称为d8. 有关更多信息,请参阅我的答案。
2021-05-10 22:15:16

要构建开发者控制台,而不是示例“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=x64. console=readline选项启用readline系统,使其感觉更像标准外壳。

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


笔记:

在此处输入图片说明

另请参阅:使用 GYP 构建 v8

在 ubunt 12.04 上:致命错误:readline/readline.h:没有这样的文件或目录 - 有什么想法吗?
2021-04-15 22:15:16
构建完成后,输入./d8.
2021-04-26 22:15:16
@Hugh:它启用了 readline 系统;这就是允许您使用向上箭头获取上一个命令以及其他细节的原因。
2021-05-02 22:15:16
我必须添加arch=x64以构建在 64 位 ubuntu 上。
2021-05-08 22:15:16

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

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


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

    $ brew install node
    $ node
    > 
恕我直言,node.js 是 JavaScript 控制台的新事实上的标准。它使用 v8,并且可能是用于此目的的最佳选择。
2021-05-13 22:15:16

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

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

你可以自己构建 v8,它很简单,使用 brew 太麻烦了。
2021-04-15 22:15:16
'brew install v8' 有多麻烦?
2021-04-26 22:15:16
或者直接按Ctrl-D退出:)
2021-04-30 22:15:16
或者Ctrl-C杀死它
2021-05-13 22:15:16

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

一页满是回应,而你的,最不被重视的,包含了我需要的最终建议。
2021-04-21 22:15:16