JavaScript:适用于Windows的独立编译器或解释器?

时间:2011-04-21 09:27:20

标签: javascript windows

Windows 有哪些 JavaScript 编译器或解释器?

我最近读了这本书 Eloquent JavaScript 。本书介绍了使用JavaScript作为第一语言编程的读者。遗憾的是,程序仅限于在嵌入HTML的浏览器中运行。所以,我想知道是否可以编写可以独立执行的JavaScript程序。

编译器或解释器应该可以作为预编译的二进制文件轻松使用,可以由初学者下载和安装。他应该能够编写使用此编译器编译的简单独立JavaScript程序。可以使用此编译器的其他JavaScript库,框架,IDE和调试支持。

9 个答案:

答案 0 :(得分:8)

即使您不选择将其用于Web应用程序,

Node.js也可以作为解释器使用。它是一个在V8 JavaScript引擎上运行的框架。它是well documented,有大量官方和third party modules

虽然可以require cygwin在Windows上运行(或者你可以compile it with MingW)。有预编译的二进制文件,包括所需的cygwin库,可在node-js.prcn.co.cc获得。

答案 1 :(得分:8)

还没有人提到过,window自己的javascript编译器:http://msdn.microsoft.com/en-us/library/vstudio/7435xtz6(v=vs.100).aspx

Microsoft (R) JScript Compiler version 8.00.50727
for Microsoft (R) .NET Framework version 2.0.50727
Copyright (C) Microsoft Corporation 1996-2005. All rights reserved.

jsc [options] <source files> [[options] <source files>...]

                         JScript Compiler Options

                           - OUTPUT FILES -
  /out:<file>              Specify name of binary output file
  /t[arget]:exe            Create a console application (default)
  /t[arget]:winexe         Create a windows application
  /t[arget]:library        Create a library assembly
  /platform:<platform>     Limit which platforms this code can run on; must be x86, Itanium, x64, or anycpu, which is the default

                           - INPUT FILES -
  /autoref[+|-]            Automatically reference assemblies based on imported namespaces and fully-qualified names (on by default)
  /lib:<path>              Specify additional directories to search in for references
  /r[eference]:<file list> Reference metadata from the specified assembly file
                           <file list>: <assembly name>[;<assembly name>...]

                           - RESOURCES -
  /win32res:<file>         Specifies Win32 resource file (.res)
  /res[ource]:<info>       Embeds the specified resource
                           <info>: <filename>[,<name>[,public|private]]
  /linkres[ource]:<info>   Links the specified resource to this assembly
                           <info>: <filename>[,<name>[,public|private]]

                           - CODE GENERATION -
  /debug[+|-]              Emit debugging information
  /fast[+|-]               Disable language features to allow better code generation
  /warnaserror[+|-]        Treat warnings as errors
  /w[arn]:<level>          Set warning level (0-4)

                           - MISCELLANEOUS -
  @<filename>              Read response file for more options
  /?                       Display help
  /help                    Display help
  /d[efine]:<symbols>      Define conditional compilation symbol(s)
  /nologo                  Do not display compiler copyright banner
  /print[+|-]              Provide print() function

                           - ADVANCED -
  /codepage:<id>           Use the specified code page ID to open source files
  /lcid:<id>               Use the specified LCID for messages and default code page
  /nostdlib[+|-]           Do not import standard library (mscorlib.dll) and change autoref default to off
  /utf8output[+|-]         Emit compiler output in UTF-8 character encoding
  /versionsafe[+|-]        Specify default for members not marked 'override' or 'hide'

在任何Windows安装中通常都会有几个副本,但它们通常不在路径中,因此您必须找到它们。

编译器能够将javascript文件编译成可在任何安装了.NET的Windows机器上运行的可执行文件。

答案 2 :(得分:4)

有几个免费的独立Javascript解释器可用:

  1. V8 - 这与Chrome浏览器中使用的Javascript引擎相同。
  2. SpiderMonkey - 来自Mozilla。
  3. Rhino - Java上的Javascript实现。

答案 3 :(得分:2)

jsdb很好。我在editplus内使用它,有时在Aptana Studio

答案 4 :(得分:2)

您也可以在some circumstances下直接在命令提示符下运行JScr​​ipt脚本(Microsoft的Javascript实现)。

但我个人最喜欢的是Rhino,在另一个答案中提到。

答案 5 :(得分:2)

好的,Windows Scripting Host是使用Microsoft的 Active Scripting 执行各种管理任务的工具,可以运行各种语言的脚本,包括JScript,它们的ECMAScript实现。关于它没有什么可说的,所以请将浏览器指向引用 - http://msdn.microsoft.com/en-us/library/shzd7dy4(VS.85).aspx

忘记编译器,BTW,ECMAScript是解释语言(JIT编译是另一个问题)

另请注意,ECMAScript标准没有定义任何标准I / O,因此主程序负责提供它。

答案 6 :(得分:1)

对于您正在寻找的内容可能有点令人费解,但您可以使用Rhino's JavaScript Compiler将JavaScript源代码编译为Java类文件,然后可以使用标准GCJ frontend to the GCC compiler suite将其编译为二进制可执行程序。

正如其他人所提到的,默认情况下,在现代Windows安装中可以使用ECMAScript的JScript实现。扩展名为“.js”的文件可以双击执行,也可以使用cscript.exe命令在命令行上运行。

答案 7 :(得分:1)

我也有同样的需求,但最终找到了一个名为DeskJS的应用程序(https://deskjs.wordpress.com)。它是一款免费的便携式Windows控制台应用程序,可让您运行纯JavaScript代码甚至加载任何现有的JS文件。它支持在浏览器中实现的基本JS弹出框。您可以将命令保存为可以在启动时运行的JS文件,也可以将它们拖放到应用程序上。此外还有更多内容,比如你可以为Sublime Text创建一个可以通过cmd运行JS文件的构建系统,它支持自定义整个控制台和片段的主题,让你可以保存JavaScript代码的短片段以供日后使用使用。对应用程序以及其他本机API的改进仍在进行中。

答案 8 :(得分:0)

你试过Mozilla XUL & XULRunner吗?它比仅仅是一个解释器要复杂得多,但它也可以在MacOsX&amp; Linux,不仅仅是Windows。 Firefox和Thunderbird是用它编写的(是的,Firefox是用Javascript编写的!)。下个月在华沙举行的FalsyValues会议上将举办XUL研讨会 - link