EXEを作ってみた2007年05月04日 03時11分17秒

これはちょっと便利かも

ゆるゆると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をくっつけたバッチファイルにしちゃえばよいんだし。ちぇ。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://dara-j.asablo.jp/blog/2007/05/04/1482273/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。