使用 JScript 创建 .exe 或 .dll 文件的方法_javascript技巧

什么是 JScript?
JScript 是由微软开发的活动脚本语言,基于 ECMAScript 规范实现。Internet Explorer 中的 JavaScript,实际上是指 JScript。JScript 已被 Windows Script Host(WSH)支持(WSH 中的 JavaScript shell scripting:C:\> cscript jslint.js)。JScript 最新的版本(JScript.NET)基于 ECMAScript 4.0 ,并且可以在 .Net 环境下编译。
.NET Framwork 中包含有 JScript 编译器 :JScriptCompiler (C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\jsc.exe),其可以将 JScript 文件编译为一个 .exe 或者 .dll 文件。
为了方便使用,我们可以将 JScriptCompiler 的路径加入到环境变量(环境变量 –> 系统变量 –> Path)中。在 CMD 程序运行窗口中直接调用命令 “jsc”,就可以看到编译器相关的帮助选项。

复制代码 代码如下:

jsc [选项] <源文件> [[选项] <源文件>…]

JScript 编译器选项

– 输出文件 -
/out:<file> 指定二进制输出文件的名称
/t[arget]:exe 创建控制台应用程序(默认)
/t[arget]:winexe 创建 Windows 应用程序
/t[arget]:library 创建库程序集
/platform:<platform> 限制此代码可以在其上运行的平台;必须是 x86、Itanium、x64 或 anycpu。默认为 anycpu

– 输入文件 -
/autoref[+|-] 基于导入的命名空间和完全限定名称自动引用程序集(默认情
况下为 on)
/lib:<path> 指定要在其中搜索引用的附加目录
/r[eference]:<file list> 从指定的程序集文件引用元数据 <file list>: <assembly name>[;<assembly name>...]

– 资源 -
/win32res:<file> 指定 Win32 资源文件(.res)
/res[ource]:<info> 嵌入指定的资源 <info>: <filename>[,<name>[,public|private]]
/linkres[ource]:<info> 将指定的资源链接到此程序集 <info>: <filename>[,<name>[,public|private]]

– 代码生成 -
/debug[+|-] 发出调试信息
/fast[+|-] 禁用语言功能以使代码更好地生成
/warnaserror[+|-] 将警告视为错误
/w[arn]:<level> 设置警告等级(0-4)

– 杂项 -
@<filename> 有关更多选项,请阅读响应文件
/? 显示帮助
/help 显示帮助
/d[efine]:<symbols> 定义条件编译符号
/nologo 不显示编译器版权标志
/print[+|-] 提供 print() 函数

– 高级 -
/codepage:<id> 使用指定的代码页 ID 打开源文件
/lcid:<id> 将指定的 LCID 用于消息和默认代码页
/nostdlib[+|-] 不导入标准库(mscorlib.dll)并将 autoref 默认值更改为 off
/utf8output[+|-] 以 UTF-8 字符编码形式发出编译器输出
/versionsafe[+|-] 为没有标记为“override”或“hide”的成员指定默认值

创建 .exe 文件

先创建 JS 文件(C:\test\helloWorld.js),内容如下:

var date = new Date(); print('Hello World! \nToday is ' + date );

接着我们进行编译:

C:\test>jsc helloWorld.jsMicrosoft (R) JScript Compiler version 8.00.50727for Microsoft (R) .NET Framework version 2.0.50727Copyright (C) Microsoft Corporation 1996-2005。保留所有权利。
你会惊讶的发现,C:\test 目录下多了个 helloWorld.exe 文件,非常简单吧,呵呵

最后我们可以直接执行 helloWorld.exe 文件:

C:\test>helloWorldHello World!Today is Fri Jun 3 23:13:20 UTC+8 2011
大功告成!!

创建 .dll 文件

.dll 文件的创建也同样非常简单:

复制代码 代码如下:

package LibHW {
class HelloWorld {
function run() {
var date = new Date();
return 'Hello World! \nToday is ' + date;
}
}
}

编译语句:

C:\test>jsc /t:library LibHW.js
对于生成的 LibHW.dll 文件,我们可以通过创建新的 .exe 文件(consumer.js –> consumer.exe)以导入模块的方式调用(类似于 Python)。

先创建 consumer.js 文件:

import LibHW;var hw = new LibHW.HelloWorld();print(hw.run());
然后编译 consumer.js 文件,执行 consumer.exe:

C:\test>jsc consumer.jsMicrosoft (R) JScript Compiler version 8.00.50727for Microsoft (R) .NET Framework version 2.0.50727Copyright (C) Microsoft Corporation 1996-2005。保留所有权利。C:\test>consumerHello World!Today is Sat Jun 4 00:42:35 UTC+8 2011
当然你还可以创建 windows 的应用,上例中的 consumer.js 文件修改如下:

复制代码 代码如下:

import System.Windows.Forms; // this has a MessageBox class
import LibHW;

var hw = new LibHW.HelloWorld();
MessageBox.Show(
hw.run(),
"Dude!",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation
);

编译语句:

C:\test>jsc /t:winexe consumer.js
双击新生成的 consumer.exe 文件,哈哈,是不是很有成就感!

从上面的例子可以看到 JScript 的潜力无限,没有做不到,只有想不到。

扩展阅读:

  • 《Make your javascript a Windows .exe》
  • 《JavaScript shell scripting》
时间: 2024-10-25 04:57:27

使用 JScript 创建 .exe 或 .dll 文件的方法_javascript技巧的相关文章

JScript教程:使用JScript创建.exe或.dll文件

文章简介:JScript 是由微软开发的活动脚本语言,基于 ECMAScript 规范实现.Internet Explorer 中的 JavaScript,实际上是指 JScript.JScript 已被 Windows Script Host(WSH)支持.JScript 最新的版本(JScript.NET)基于尚未定稿的 ECMAScript 4.0 ,并且可以在.Net环境下编 什么是 JScript? JScript 是由微软开发的活动脚本语言,基于 ECMAScript 规范实现.In

使用JS读取XML文件的方法_javascript技巧

由于项目上需要解析xml,于是各种百度,然后自己总结了下各个主流浏览器解析xml的方法,只能是很浅显的知道他的用法,但是还没有深层次的研究. 不同的浏览器对xml的解析方式不同,根据目前主流浏览器大致分三类: 第一类,ie祖宗: js 提供用于创建 Automation对象的方法,new ActiveXObject("Microsoft.XMLDOM") : 第二类:firefox,opera:用构造函数 DOMParser()实例化DOMParser对象,解析xml文本,并返回xml

JavaScript实现删除,移动和复制文件的方法_javascript技巧

本文实例讲述了JavaScript实现删除,移动和复制文件的方法.分享给大家供大家参考.具体如下: 这里利用JavaScript删除.移动和复制文件,运行前请确保文件已经存在,比如在C盘建立test.txt文件,然后在代码里修改为这个路径,再运行代码,就可以看到效果. <html> <head> <title>删除,移动和复制文件</title> </head> <body> <h2>删除,移动和复制文件</h2&g

javascript实现动态导入js与css等静态资源文件的方法_javascript技巧

本文实例讲述了javascript实现动态导入js与css等静态资源文件的方法.分享给大家供大家参考.具体实现方法如下: /** * 动态导入静态资源文件js/css */ var $import = function(){ return function(rId, res, callback){ if(res && 'string' == typeof res){ if(rId){ if($($('#' + rId), $('head')).length>0){ return; }

JS与jQ读取xml文件的方法_javascript技巧

废话不多说了,直接给大家贴代码了,具体代码如下所示: jquery读取xml文件 <!DOCTYPE html PUBLIC "-//WC//DTD XHTML . Transitional//EN" "http://www.w.org/TR/xhtml/DTD/xhtml-transitional.dtd"> <html xmlns="http://www.w.org//xhtml"> <head> <

jquery及js实现动态加载js文件的方法_javascript技巧

本文实例讲述了jquery及js实现动态加载js文件的方法.分享给大家供大家参考,具体如下: 问题: 如果用jquery append直接加载script标签的话,会报错的.除了document.write外,还有没有其他的比较好的动态加载js文件的方法. 解决方法: 1.jquery方法 $.getScript("./test.js"); //加载js文件 $.getScript("./test.js",function(){ //加载test.js,成功后,并执

JavaScript代码生成PDF文件的方法_javascript技巧

可以使用javascript生成PDF的类库–jsPDF,先下载jsPDF-0.9.0rc2下载地址:;请点这里 ,以下是完整实例代码: <!doctype> <html> <head> <title>jsPDF</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script typ

javascript实现dom动态创建省市纵向列表菜单的方法_javascript技巧

本文实例讲述了javascript实现dom动态创建省市纵向列表菜单的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtm

js动态创建及移除div的方法_javascript技巧

本文实例讲述了js动态创建及移除div的方法.分享给大家供大家参考.具体实现方法如下: //创建div function createDiv(){ if(document.getElementByIdx_x("newD")!=null) document.body.removeChild(document.getElementByIdx_x("newD")); var Div = document.create_rElement("div");/