JavaScript奇淫技巧:把JS編譯成exe
本文,介紹一種一般人不知道的技術:把JS代碼編譯成exe,而且不使用第三方工具,僅用系統工具完成。
第一:工具準備
編譯JS代碼,使用一個名為jsc.exe的工具,在系統windows目錄中搜尋,可找到此檔案。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5COygTOygTY2QzYkRTMjRGMzYzX3MDM1UTMwMzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
使用jsc /help可獲得此工具的使用說明:
第二:編譯js為指令行輸出exe
代碼如下:
var d = new Date();
var n = Math.random();
print('Hello, today is ' + d + 'nand this is random - ' + n);
編譯并執行:
第三:編譯js為dll(動态連結庫)
代碼如下:
package LibHello {
class Hello {
function say() {
var d = new Date();
var n = Math.random();
return 'Hello, today is ' + d + 'and this is random - ' + n;
}
}
}
編譯方法:
第四:調用js編譯的dll檔案
代碼:
import LibHello;
var h = new LibHello.Hello();
print(h.say());
編譯并執行:
第五:調用系統API
本例調用MessageBox,代碼:
import System.Windows.Forms; // this has a MessageBox class
import LibHello;
var h = new LibHello.Hello();
MessageBox.Show(
h.say(),
"title",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation
);
編譯并運作: