EXEを作ってみた
2007-05-04


これはちょっと便利かも

ゆるゆるとJSDBを試しているが、本家のチュートリアル眺めてたら、「Standalone JSDB programs」という項があって、

c:\temp>pkzip program.zip main.js

c:\temp>copy /b jsdb.exe+file.zip program.exe
c:\temp>program.exe
とか書いてあるじゃないですか。

さらに-helpオプションつけて起動してみたら、.zipのアーカイブをパラメータに渡せるとあった。

D:\jsdb>jsdb -help
JSDB 1.52Compiled Apr 27 2007.  http://www.jsdb.org/
Copyright 2003-2006 by Shanti Rao and others.

JSDB [-strict] [-werror] [-load file.js] [-debug server] [lib.zip] [program.js]

  -strict             Strict syntax mode
  -werror             Treat warnings as errors
  -load file.js       Load and run file.js before program.js
  -debug server:port  Connect to a debugger server
lib.zip Set lib.zip as the default location for library files Executes main.js if found in the zip file

  program.js          Runs a JavaScript program. If omitted, enter console mode


D:\jsdb>
ということは、「main.js」にメインコードを記述し、それをzipで固めて、チュートリアルにあるように結合コピーするとオリジナルのコンソールアプリケーションが作れるってことじゃない!こいつぁ便利かも。

早速試してみた

まず、以下のコードを「main.js」で保存。コードの中身はかなり適当。

write("what your name ? > ");
writeln( "hello, ", readln()," !!" );
sleep( 1000 );

そんで、main.jsをmain.zipとして固める。

そしてチュートリアルにある要領で、コピー。hello.exeとした。

D:\jsdb>copy /b jsdb.exe+main.zip hello.exe
jsdb.exe
main.zip
        1 個のファイルをコピーしました。

D:\jsdb>
さて、hello.exeを実行。
D:\jsdb>hello
what your name ? > hoge
hello, hoge !!

D:\jsdb>
おお、ちゃんとできてるよ。

使い道

とりあえず思いつくのは、ライブラリ読み込み処理をmain.jsに記述してカスタマイズした実行環境にするってとこかな。

と思ったが、アーカイブ内のmain.jsを実行するとそのまま終了しちゃうので、この方法だとドラッグドロップ専用になっちゃうな(たぶんコマンドライン引数は受け取れるだろうから)。 もっとも、ライブラリロードを起動時になんとかするんだったら、-loadをくっつけたバッチファイルにしちゃえばよいんだし。ちぇ。

[JavaScript]
[JSDB]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット