如果我們希望能有一個程序直接啟動我們的應用程序,那就還要費些功夫。最簡單的方法是弄出一個快捷方式來,但是快捷方式的路徑不能是相對的,不方便我們安裝。我想到的方案就是用Win32程序包裝一下。在VS.Net下寫一個Win32小程序:
int PASCAL WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow )
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( π, sizeof(pi) );
// Start the child process.
if( !CreateProcess( "jre\\bin\\Javaw.exe",//執行的程序名
"jre\\bin\\Javaw.exe -jar MyApp.jar", // 帶參數的執行程序
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
π ) // Pointer to PROCESS_INFORMATION structure.
)
{
ErrorExit( "CreateProcess failed." );
}
// Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE );
// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}
基本上是按照MSDN文檔中的例子照搬的。將它編譯成一個EXE文件,我們的任務才全部完成。雙擊這個EXE文件,我們的程序啟動了,看起來和傳統的Win32程序沒有兩樣,JRE完全被隱藏在底層。
本文來自編程入門網:http://www.bianceng.cn/Programming/Java/201107/27907_2.htm