【问题标题】:simplest way to write programs in javascript on desktop?在桌面上用 javascript 编写程序的最简单方法?
【发布时间】:2010-03-05 13:35:29
【问题描述】:

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

最好是windows,或者Linux

【问题讨论】:

  • 如果你想在 Windows 上做,那么你有 Windows Script Host。

标签: javascript


【解决方案1】:

Hans 已经提到了 Windows Script Host,但是有一个很酷的 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 的方式有很大差异,那么在桌面上用 JavaScript 编写应用程序似乎将是完全不同的体验。

【讨论】:

  • 这真是太棒了。请注意,您可能需要编辑路径。此外,这是在我的 .NET Framework 2.0 中,但不是 3.5。
  • 所以它只适用于旧的 .NET 并使用 .NET 系统模块?
  • @zaharpopov .NET 2 包含 jsc.exe 编译器,.NET 3.5 没有。我不知道.NET 系统模块是什么意思。您可以使用我在示例中显示的导入,但它们不必来自 System 命名空间。我只需要 System 来使用 Console.WriteLine。至于 JScript 编译器的未来,不确定是否有人知道……它看起来不像以前很流行。 JavaScript 一直被“真正的”开发者看不起。
  • 被“真正的”开发者看不起?快到 2016 年了,同性婚姻是合法的,我们可以进行全脸移植,SpaceX 计划将一个人送上火星,开发者什么时候才能不再偏执?我认为我们是一群进步的人,但我们甚至比 iPhone/Android 人群还拥有更多的狂热分子、激烈的争吵和对语言的普遍仇恨。让人们使用他们想要的任何语言进行编程。
【解决方案2】:

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

https://docs.microsoft.com/en-us/previous-versions/9bbdkx3k(v=vs.85)

https://en.wikipedia.org/wiki/Windows_Script_Host

【讨论】:

  • 我一直这样做。它就像一个超级强大的批处理工具,但是……啊……它可以工作。
【解决方案3】:

Node.js 允许您编写服务器端 JavaScript。 Node.js 适用于 Linux、Mac 和 Windows。它还有一个非常好的 REPL,因此您可以从终端启动它来编写 JavaScript 并查看它是如何工作的。

【讨论】:

  • 请注意,node.js 现在在 Windows 上运行得非常好。
【解决方案4】:

开发桌面应用最简单的方法是使用 Node Webkit -- https://github.com/rogerwang/node-webkit

祝你好运!

【讨论】:

    【解决方案5】:

    Seed 在 GNOME 平台上工作。 Adobe AIR 将是另一种方法。看到这个问题:Can you do Desktop Development using JavaScript?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      • 2013-06-18
      相关资源
      最近更新 更多