« Apache Derby | Main | コマンドプロンプト非表示(2) »

2005.08.07

コマンドプロンプト非表示

 Javaアプリケーションを実行する際、バッチファイル+javawコマンドを使用したとしても、一瞬コマンドプロンプトが表示されてしまうわけですが、CreateProcessというAPIを使うことにより、それを回避できるっぽいですね(正確に言うと、javawを起動するためのExeをCなどで作成する、という感じになりますが)。
 Cは全然わからないのですが、とりあえずLCC-Win32をインストールして、ここを参照して、以下のようなソースを書いてコンパイルしてExeを作成。


#include <windows.h>

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) {
PROCESS_INFORMATION pi;
STARTUPINFO si;

ZeroMemory(&si,sizeof(si));
si.cb=sizeof(si);

CreateProcess(NULL, "javaw -jar hoge.jar", NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);

return 0;
}


 一応これでコマンドプロンプトを表示させることなく、Javaアプリケーションを起動させることに成功(詳しいことは全然わからないのですが(苦笑))。SWTで画面を作れば、ぱっと見た目「Javaアプリケーション」ってわからないようなものになるかもしれませんね。

#実際のところは、引数などを処理できるようにしないと使いにくいと思いますが・・・。

|

« Apache Derby | Main | コマンドプロンプト非表示(2) »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference コマンドプロンプト非表示:

« Apache Derby | Main | コマンドプロンプト非表示(2) »