* ------------------------------------------------------------------------------------
Title: TestJava.cpp
author: gloomy fish on 2009-09-16
------------------------------------------------------------------------------------
*/
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
/* for spawn
*/
#include <process.h>
/* for str* functions
*/
#include <string.h>
#include <TCHAR.H>
//-------------------------------------------------------------------------------
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
// -- check wether application is running now....
HANDLE hMutex = CreateMutex (NULL,
// No security descriptor
FALSE,
// Mutex object not owned
TEXT("TotallyBogusMutexObjectPlateUtility"));
// Object name
if (NULL
== hMutex)
{
// Didn't expect this to happen!
printf("Mutex is null");
return
1;
}
else
{
// Not an error -- deal with success
if ( ERROR_ALREADY_EXISTS
== GetLastError() )
{
return
0;
}
}
// -- set up classpath & env path to launch
int ret;
TCHAR envPath[3072]
= "PATH=.;D://JDK6//bin;%path%";
int anErr
= _tputenv(envPath);
if (anErr
!= 0) {
ret = anErr;
return ret;
}
char jvmArg[2048];
// append all necessary jars to set up classpath
_tcscpy(jvmArg, _T("-cp .//test.jar"));
// _tcscat(jvmArg, _T(";D://JDK6//lib"));
// -- your application
_tcscat(jvmArg, _T(" -Xms256m -Xmx1024m com.swing.ui.Test") );
// -- can't launch like this......
#ifdef _DEBUG
ret = _spawnlp(_P_NOWAIT,
"..//..//JDK6//bin//java.exe",
"java", jvmArg, NULL);
#else
ret = _spawnlp(_P_NOWAIT,
"..//..//JDK6//bin//javaw.exe",
"java", jvmArg, NULL);
#endif
return ret;
}
// winXP, vc++6.0 compile successfully....