我正在寻找在桌面上而不是在浏览器内编写Javascript程序/脚本的方法。我希望它像Python一样运行 - 从命令行,能够读取文件,写入文件等。我发现提到的所有解决方案(Rhino,spidermonkey,V8)都用于嵌入。有没有人做过简单的实现,只是编写具有OS访问权限等全部功能的独立程序?
对于Windows最好,或者Linux
答案 0 :(得分:6)
如果您有Windows,那么您已经拥有Windows脚本宿主。您可以使用它在Windows中执行JavaScript程序。
http://msdn.microsoft.com/en-us/library/9bbdkx3k(VS.85).aspx
答案 1 :(得分:6)
Hans已经提到了Windows脚本宿主,但是有一个很酷的JScript编译器,你可能已经安装了它(它附带了.NET)。您可以使用任何.NET库编写JavaScript并将其编译为Windows .exe文件。有关使用jsc进行编译的介绍,请参阅this link。你应该可以从那里找到更多。
这不允许你像脚本一样从命令行运行而不先编译,但你可能对它感兴趣,因为它可以让你访问这么多的库。
这是一个准系统测试程序。 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>
我在制作测试程序时遇到了一些严重的限制。例如,函数似乎比浏览器环境中的类型更强。除非我将该参数定义为函数定义的一部分,否则我无法调用test()
并传递参数。如果您熟悉浏览器托管的JavaScript,您就知道可以使用任意数量的参数定义函数,并使用任意数量的参数调用它。
因此,如果您习惯使用它的方式存在很多差异,那么在桌面上用JavaScript编写应用程序似乎会有相当不同的体验。
答案 2 :(得分:4)
有Node.js允许您编写服务器端JavaScript。 Node.js适用于Linux,Mac和Windows。它还有一个非常好的REPL,所以你可以从你的终端启动它来编写JavaScript,看看它是如何工作的。
答案 3 :(得分:2)
开发桌面应用程序的简单方法是使用Node Webkit - https://github.com/rogerwang/node-webkit
祝你好运!答案 4 :(得分:0)
Seed适用于GNOME平台。 Adobe AIR将是另一种方法。请参阅此问题:Can you do Desktop Development using JavaScript?。