在桌面上用javascript编写程序的最简单方法?

在桌面上用javascript编写程序的最简单方法?,javascript,Javascript,我正在寻找在桌面上而不是在浏览器中编写Javascript程序/脚本的方法。我希望它像Python一样运行——从命令行开始,能够读取文件、写入文件等。我发现提到的所有解决方案(Rhino、spidermonkey、V8)都是用于嵌入的。有没有人做过简单的实现,仅仅编写具有操作系统访问等全部功能的独立程序 对于windows,或者Linux,最好有一个允许您编写服务器端JavaScript的脚本。Node.js可以在Linux、Mac和Windows上运行。它还有一个非常好的REPL,因此您可以从

我正在寻找在桌面上而不是在浏览器中编写Javascript程序/脚本的方法。我希望它像Python一样运行——从命令行开始,能够读取文件、写入文件等。我发现提到的所有解决方案(Rhino、spidermonkey、V8)都是用于嵌入的。有没有人做过简单的实现,仅仅编写具有操作系统访问等全部功能的独立程序


对于windows,或者Linux,最好有一个允许您编写服务器端JavaScript的脚本。Node.js可以在Linux、Mac和Windows上运行。它还有一个非常好的REPL,因此您可以从终端启动它来编写JavaScript,看看它是如何工作的。

可以在GNOME平台上工作。这将是另一种方法。请参阅此问题:。

如果您有Windows,那么您已经有了Windows脚本主机。您可以使用它在Windows中执行javascript程序


Hans已经提到了Windows脚本主机,但是JScript有一个很酷的编译器,您可能已经安装了它(它随.NET一起提供)。您可以使用任何.NET库编写JavaScript,并将其编译为Windows.exe文件。有关使用jsc编译的介绍,请参见。你应该能从那里找到更多

这不允许您像脚本一样从命令行运行而不首先编译,但您可能对它感兴趣,因为它允许您访问这么多库

这是一个简单的测试程序。jsc已经在我的路径上,请在命令提示符中键入jsc以查看它是否在您的路径上

test.js:

import System.io;
import System;

function test()
{
   Console.WriteLine("test");
};

function test2(arg)
{
   Console.WriteLine(arg);
};

test();
test2("argtest");
编译和运行:

C:\test>jsc test.js
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.


C:\test>dir
 Volume in drive C has no label.

 Directory of C:\test

03/05/2010  09:19 AM    <DIR>          .
03/05/2010  09:19 AM    <DIR>          ..
03/05/2010  09:26 AM             5,120 test.exe
03/05/2010  09:23 AM               178 test.js
               2 File(s)              - bytes
               3 Dir(s)               - bytes free

C:\test>test.exe
test
argtest

C:\test>
C:\test>jsc test.js
Microsoft(R)JScript编译器版本8.00.50727
适用于Microsoft(R).NET Framework 2.0.50727版
版权所有(C)微软公司1996-2005。版权所有。
C:\test>dir
驱动器C中的卷没有标签。
C:\test目录
2010年5月3日上午9:19。
2010年5月3日上午9:19。。
2010年05月03日09:26 AM 5120 test.exe
2010年5月3日09:23 AM 178 test.js
2个文件-字节
3个目录-可用字节
C:\test>test.exe
测试
阿格特斯特
C:\test>
在编写测试程序时,我似乎立即遇到了一些严重的限制。例如,函数的类型似乎比浏览器环境中的强。我无法调用
test()
并传递参数,除非我将该参数定义为函数定义的一部分。如果您熟悉浏览器托管的JavaScript,您就知道可以使用任意数量的参数定义函数,并使用任意数量的参数调用函数


因此,如果您习惯于在桌面上使用JavaScript编写应用程序的方式存在很大差异,那么在桌面上编写JavaScript应用程序的体验将大不相同。

开发桌面应用程序的简单方法是使用Node Webkit--


祝你好运

真是太棒了。请注意,您可能需要编辑路径。另外,这是在我的.NET Framework 2.0中,而不是在3.5中。因此,它仅适用于旧的.NET并使用.NET系统模块?@Zaharpov.NET 2包括jsc.exe编译器,.NET 3.5没有。我不知道你所说的.NET系统模块是什么意思。您可以使用导入,如我在示例中所示,但它们不必来自系统名称空间。我只需要使用Console.WriteLine就可以了。至于JScript编译器的未来,不确定是否有人知道……它看起来从来都不是很流行。JavaScript总是被“真正的”开发者看不起。被“真正的”开发者看不起?快到2016年了,同性婚姻是合法的,我们可以做全脸移植,SpaceX正计划把一个男人送上火星,开发者什么时候才能不再偏执?我认为我们是一个进步的群体,但我们有更多的粉丝和火焰战以及通过语言表达的普遍仇恨,甚至比iPhone/Android人群还要多。让人们用他们想要的任何语言编程。我一直都在这样做。它就像一个超级强大的批处理工具,但是。。。啊……这很有效。如果你想在Windows上运行,那么你就有了Windows脚本主机。注意,node.js现在在Windows上运行得非常非常好。