+
+//main window handle
+HWND hwnd;
+
+//instance of application handle
+HINSTANCE hInst;
+
+//application name
+char szAppName[]="Adempiere Launcher";
+
+//path to program to run
+char program_to_run[300];
+//working directory
+char workingdir[300];
+//parameters to send
+char parameters[500];
+
+//the procedure that handle all messages sent to the window
+LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
+
+//main program
+int APIENTRY WinMain(HINSTANCE hInstance,
+ HINSTANCE hPrevInstance,
+ LPSTR lpCmdLine,
+ int nCmdShow)
+{
+ //structure for creating the application window
+ WNDCLASSEX wndclass;
+
+ wndclass.cbSize=sizeof(WNDCLASSEX); // size of structure
+ wndclass.style=CS_HREDRAW|CS_VREDRAW; // type of redrawing
+ wndclass.lpfnWndProc=WndProc; // address of procedure that handle messages sent to the window
+ wndclass.cbClsExtra=0;
+ wndclass.cbWndExtra=0;
+ wndclass.hInstance=hInstance; // instance handle
+ wndclass.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_JLUNCHM));// window icon
+ wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); // default cursor
+ wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); // default background
+ wndclass.lpszMenuName=NULL; // no menu
+ wndclass.lpszClassName=szAppName; // name of class=name of application
+ wndclass.hIconSm=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_JLUNCH)); // small icon for window
+
+ // register window class into system
+ RegisterClassEx(&wndclass);
+
+ // copying instance handle into another variable
+ hInst=hInstance;
+
+ // initially program_to run is empty
+ program_to_run[0]='\0';
+ // initial working directory is blank
+ workingdir[0]='\0';
+ // initial no parameter
+ parameters[0]='\0';
+
+ // creating main window
+ hwnd=CreateWindow(szAppName,"Adempiere Lancher",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,
+ CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInst,NULL);
+
+ // showing main window minimized
+ ShowWindow(hwnd,SW_MINIMIZE);
+
+
+ // getting "adempiereHome" environment variable value
+ char* adempiereHome;
+ adempiereHome=getenv("ADEMPIERE_HOME");
+ if (adempiereHome == NULL)
+ {
+ MessageBox(hwnd, "ADEMPIERE_HOME environment variable not set","Adempiere: Error",MB_OK|MB_ICONSTOP);
+ return 0;
+ }
+// MessageBox(hwnd, adempiereHome, "ADEMPIERE_HOME", MB_OK|MB_ICONSTOP);
+ strcpy(workingdir,adempiereHome);
+ strcat(workingdir,"\\lib");
+
+ // change the working directory to %ADEMPIERE_HOME%\lib
+ int rez=_chdir(workingdir);
+ if(rez==-1)
+ {
+ char mess[300]="Cannot change to working directory:\n\t";
+ strcat(mess, workingdir);
+ MessageBox(hwnd, mess,"Adempiere: Error",MB_OK|MB_ICONSTOP);
+ return 0;
+ }
+
+ // Get Java_Home
+ char* javaHome;
+ javaHome=getenv("JAVA_HOME");
+ if (javaHome == NULL)
+ {
+ MessageBox(hwnd, "JAVA_HOME environment variable not set","Adempiere: Error",MB_OK|MB_ICONSTOP);
+ return 0;
+ }
+ strcpy(program_to_run,javaHome);
+
+ // search for -debug parameter
+ char *pos;
+ pos = strstr (lpCmdLine,"-debug"); // get the position of -debug
+ // it is not present so run javaw
+ if (pos == NULL)
+ strcat(program_to_run,"\\bin\\javaw.exe");
+ else
+ {
+ // for(int i=0; i<7; i++) // erase -debug
+ // *(pos+i) = ' ';
+ strcat(program_to_run,"\\bin\\java.exe");
+ }
+// MessageBox(hwnd, program_to_run, "Program", MB_OK|MB_ICONSTOP);
+
+ // Parameters ------------------------------------------------------------
+
+ // Environment variables License & Product
+ char* envInfo;
+ envInfo=getenv("ADEMPIERE_PRODUCT");
+ if (envInfo == NULL)
+ {
+ // MessageBox(hwnd, "No Product Info", "Environment", MB_OK|MB_ICONSTOP);
+ strcat(parameters," -DADEMPIERE_PRODUCT=0");
+ }
+ else
+ {
+ strcat(parameters," -DADEMPIERE_PRODUCT=");
+ strcat(parameters, envInfo);
+ }
+ strcat(parameters," -DADEMPIERE_HOME=");
+ strcat(parameters, adempiereHome);
+
+
+ // Parmeter Adempiere - 32-512 MB Allocation Pool
+ strcat(parameters," -Xms32m -Xmx512m");
+ strcat(parameters," -cp Adempiere.jar;AdempiereCLib.jar ");
+ strcat(parameters," org.compiere.Adempiere ");
+
+ // runtime parameter except
+ strcat(parameters, lpCmdLine);
+
+// MessageBox(hwnd, parameters, "Parameters", MB_OK|MB_ICONSTOP);
+
+ // Execute command
+ long result=(long)ShellExecute (hwnd,"open", program_to_run, parameters, NULL, SW_MINIMIZE); // SW_SHOW
+
+ // Check Error
+ if(result<=32)
+ {
+ char message[200];
+ switch(result)
+ {
+ case 0:
+ strcpy(message,"The operating system is out of memory or resources.");
+ break;
+ case ERROR_FILE_NOT_FOUND:
+ strcpy(message,"The specified file was not found: ");
+ strcat(message, program_to_run);
+ break;
+ case ERROR_PATH_NOT_FOUND:
+ strcpy(message,"The specified path was not found: ");
+ strcat(message, program_to_run);
+ break;
+ case ERROR_BAD_FORMAT:
+ strcpy(message,"The .exe file is invalid (non-Win32� .exe or error in .exe image).");
+ break;
+ case SE_ERR_ACCESSDENIED:
+ strcpy(message,"The operating system denied access to the specified file.");
+ break;
+ case SE_ERR_ASSOCINCOMPLETE:
+ strcpy(message,"The file name association is incomplete or invalid.");
+ break;
+ case SE_ERR_DDEBUSY:
+ strcpy(message,"The DDE transaction could not be completed because other DDE transactions were being processed.");
+ break;
+ case SE_ERR_DDEFAIL:
+ strcpy(message,"The DDE transaction failed.");
+ break;
+ case SE_ERR_DDETIMEOUT:
+ strcpy(message,"The DDE transaction could not be completed because the request timed out.");
+ break;
+ case SE_ERR_DLLNOTFOUND:
+ strcpy(message,"The specified dynamic-link library was not found.");
+ break;
+ case SE_ERR_NOASSOC:
+ strcpy(message,"There is no application associated with the given file name extension.");
+ break;
+ case SE_ERR_OOM:
+ strcpy(message,"There was not enough memory to complete the operation.");
+ break;
+ case SE_ERR_SHARE:
+ strcpy(message,"A sharing violation occurred.");
+ break;
+ default:
+ strcpy(message,"An unspecified error occured!");
+ }
+ MessageBox(hwnd,message,"Adempiere: error",MB_OK|MB_ICONSTOP);
+ }
+
+ // quitting form this application
+ PostQuitMessage(0);
+
+ return 0;
+}
+
+
+// this function handles all messages received by my window
+LRESULT CALLBACK WndProc(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
+{
+ static long cxChar,cyChar;
+ HDC hDC;
+ TEXTMETRIC tm;
+
+ switch(iMsg)
+ {
+ case WM_CREATE:
+ hDC=GetDC(hwnd);
+ GetTextMetrics(hDC,&tm);
+ cxChar=tm.tmAveCharWidth;
+ cyChar=tm.tmHeight+tm.tmExternalLeading;
+ ReleaseDC(hwnd,hDC);
+ return 0;
+ case WM_PAINT:
+ return 0;
+ case WM_CLOSE:
+ break;
+ case WM_DESTROY:
+ PostQuitMessage(0);
+ return 0;
+ case WM_SYSCOMMAND:
+ break;
+ case WM_COMMAND:
+ break;
+ }
+ return DefWindowProc(hwnd,iMsg,wParam,lParam);
+}
+
diff --git a/launch/jlaunch.dep b/launch/jlaunch.dep
new file mode 100644
index 0000000000..e07ecdba51
--- /dev/null
+++ b/launch/jlaunch.dep
@@ -0,0 +1,11 @@
+# Microsoft Developer Studio Generated Dependency File, included by jlaunch.mak
+
+.\jlaunch.rc : \
+ ".\jlaunch.ico"\
+ ".\jlaunchs.ico"\
+
+
+.\StdAfx.cpp : \
+ "..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
+ ".\StdAfx.h"\
+
diff --git a/launch/jlaunch.dsp b/launch/jlaunch.dsp
new file mode 100644
index 0000000000..d1d2871ca0
--- /dev/null
+++ b/launch/jlaunch.dsp
@@ -0,0 +1,131 @@
+# Microsoft Developer Studio Project File - Name="jlaunch" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=jlaunch - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "jlaunch.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "jlaunch.mak" CFG="jlaunch - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "jlaunch - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "jlaunch - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "jlaunch - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Intermediate"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /W3 /WX /GX /Zd /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"Release/Adempiere.exe"
+
+!ELSEIF "$(CFG)" == "jlaunch - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "jlaunch - Win32 Release"
+# Name "jlaunch - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\jlaunch.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\jlaunch.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.cpp
+# ADD CPP /Yc"stdafx.h"
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\StdAfx.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\jlaunch.ico
+# End Source File
+# Begin Source File
+
+SOURCE=.\jlaunchs.ico
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\ReadMe.txt
+# End Source File
+# End Target
+# End Project
diff --git a/launch/jlaunch.dsw b/launch/jlaunch.dsw
new file mode 100644
index 0000000000..acc451463a
--- /dev/null
+++ b/launch/jlaunch.dsw
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "jlaunch"=.\jlaunch.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/launch/jlaunch.ico b/launch/jlaunch.ico
new file mode 100644
index 0000000000..b219569413
Binary files /dev/null and b/launch/jlaunch.ico differ
diff --git a/launch/jlaunch.mak b/launch/jlaunch.mak
new file mode 100644
index 0000000000..941513e188
--- /dev/null
+++ b/launch/jlaunch.mak
@@ -0,0 +1,200 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on jlaunch.dsp
+!IF "$(CFG)" == ""
+CFG=jlaunch - Win32 Debug
+!MESSAGE No configuration specified. Defaulting to jlaunch - Win32 Debug.
+!ENDIF
+
+!IF "$(CFG)" != "jlaunch - Win32 Release" && "$(CFG)" != "jlaunch - Win32 Debug"
+!MESSAGE Invalid configuration "$(CFG)" specified.
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "jlaunch.mak" CFG="jlaunch - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "jlaunch - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "jlaunch - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE
+!ERROR An invalid configuration is specified.
+!ENDIF
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "jlaunch - Win32 Release"
+
+OUTDIR=.\Release
+INTDIR=.\Intermediate
+# Begin Custom Macros
+OutDir=.\Release
+# End Custom Macros
+
+ALL : "$(OUTDIR)\Adempiere.exe"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\jlaunch.obj"
+ -@erase "$(INTDIR)\jlaunch.pch"
+ -@erase "$(INTDIR)\jlaunch.res"
+ -@erase "$(INTDIR)\StdAfx.obj"
+ -@erase "$(INTDIR)\vc60.idb"
+ -@erase "$(OUTDIR)\Adempiere.exe"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+"$(INTDIR)" :
+ if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+CPP_PROJ=/nologo /ML /W3 /WX /GX /Zd /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"$(INTDIR)\jlaunch.pch" /Yu"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\jlaunch.res" /d "NDEBUG"
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\jlaunch.bsc"
+BSC32_SBRS= \
+
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:no /pdb:"$(OUTDIR)\Adempiere.pdb" /machine:I386 /out:"$(OUTDIR)\Adempiere.exe"
+LINK32_OBJS= \
+ "$(INTDIR)\jlaunch.obj" \
+ "$(INTDIR)\StdAfx.obj" \
+ "$(INTDIR)\jlaunch.res"
+
+"$(OUTDIR)\Adempiere.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF "$(CFG)" == "jlaunch - Win32 Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+ALL : "$(OUTDIR)\jlaunch.exe"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\jlaunch.obj"
+ -@erase "$(INTDIR)\jlaunch.pch"
+ -@erase "$(INTDIR)\jlaunch.res"
+ -@erase "$(INTDIR)\StdAfx.obj"
+ -@erase "$(INTDIR)\vc60.idb"
+ -@erase "$(INTDIR)\vc60.pdb"
+ -@erase "$(OUTDIR)\jlaunch.exe"
+ -@erase "$(OUTDIR)\jlaunch.ilk"
+ -@erase "$(OUTDIR)\jlaunch.pdb"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=/nologo /MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"$(INTDIR)\jlaunch.pch" /Yu"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\jlaunch.res" /d "_DEBUG"
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\jlaunch.bsc"
+BSC32_SBRS= \
+
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:yes /pdb:"$(OUTDIR)\jlaunch.pdb" /debug /machine:I386 /out:"$(OUTDIR)\jlaunch.exe" /pdbtype:sept
+LINK32_OBJS= \
+ "$(INTDIR)\jlaunch.obj" \
+ "$(INTDIR)\StdAfx.obj" \
+ "$(INTDIR)\jlaunch.res"
+
+"$(OUTDIR)\jlaunch.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ENDIF
+
+.c{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.c{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("jlaunch.dep")
+!INCLUDE "jlaunch.dep"
+!ELSE
+!MESSAGE Warning: cannot find "jlaunch.dep"
+!ENDIF
+!ENDIF
+
+
+!IF "$(CFG)" == "jlaunch - Win32 Release" || "$(CFG)" == "jlaunch - Win32 Debug"
+SOURCE=.\jlaunch.cpp
+
+"$(INTDIR)\jlaunch.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\jlaunch.pch"
+
+
+SOURCE=.\jlaunch.rc
+
+"$(INTDIR)\jlaunch.res" : $(SOURCE) "$(INTDIR)"
+ $(RSC) $(RSC_PROJ) $(SOURCE)
+
+
+SOURCE=.\StdAfx.cpp
+
+!IF "$(CFG)" == "jlaunch - Win32 Release"
+
+CPP_SWITCHES=/nologo /ML /W3 /WX /GX /Zd /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"$(INTDIR)\jlaunch.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+"$(INTDIR)\StdAfx.obj" "$(INTDIR)\jlaunch.pch" : $(SOURCE) "$(INTDIR)"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "jlaunch - Win32 Debug"
+
+CPP_SWITCHES=/nologo /MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"$(INTDIR)\jlaunch.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+
+"$(INTDIR)\StdAfx.obj" "$(INTDIR)\jlaunch.pch" : $(SOURCE) "$(INTDIR)"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ENDIF
+
+
+!ENDIF
+
diff --git a/launch/jlaunch.ncb b/launch/jlaunch.ncb
new file mode 100644
index 0000000000..df87d45aec
Binary files /dev/null and b/launch/jlaunch.ncb differ
diff --git a/launch/jlaunch.opt b/launch/jlaunch.opt
new file mode 100644
index 0000000000..368c98bcd0
Binary files /dev/null and b/launch/jlaunch.opt differ
diff --git a/launch/jlaunch.plg b/launch/jlaunch.plg
new file mode 100644
index 0000000000..8696458291
--- /dev/null
+++ b/launch/jlaunch.plg
@@ -0,0 +1,44 @@
+
+
+
+Build Log
+
+--------------------Configuration: jlaunch - Win32 Release--------------------
+
+Command Lines
+Creating command line "rc.exe /l 0x409 /fo"Intermediate/jlaunch.res" /d "NDEBUG" "D:\Adempiere\Launch\jlaunch.rc""
+Creating temporary file "C:\DOCUME~1\jjanke\LOCALS~1\Temp\RSP1B.tmp" with contents
+[
+/nologo /ML /W3 /WX /GX /Zd /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"Intermediate/jlaunch.pch" /Yu"stdafx.h" /Fo"Intermediate/" /Fd"Intermediate/" /FD /c
+"D:\Adempiere\Launch\jlaunch.cpp"
+]
+Creating command line "cl.exe @C:\DOCUME~1\jjanke\LOCALS~1\Temp\RSP1B.tmp"
+Creating temporary file "C:\DOCUME~1\jjanke\LOCALS~1\Temp\RSP1C.tmp" with contents
+[
+/nologo /ML /W3 /WX /GX /Zd /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"Intermediate/jlaunch.pch" /Yc"stdafx.h" /Fo"Intermediate/" /Fd"Intermediate/" /FD /c
+"D:\Adempiere\Launch\StdAfx.cpp"
+]
+Creating command line "cl.exe @C:\DOCUME~1\jjanke\LOCALS~1\Temp\RSP1C.tmp"
+Creating temporary file "C:\DOCUME~1\jjanke\LOCALS~1\Temp\RSP1D.tmp" with contents
+[
+kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:no /pdb:"Release/Adempiere.pdb" /machine:I386 /out:"Release/Adempiere.exe"
+.\Intermediate\jlaunch.obj
+.\Intermediate\StdAfx.obj
+.\Intermediate\jlaunch.res
+]
+Creating command line "link.exe @C:\DOCUME~1\jjanke\LOCALS~1\Temp\RSP1D.tmp"
+Output Window
+Compiling resources...
+Compiling...
+StdAfx.cpp
+Compiling...
+jlaunch.cpp
+Linking...
+
+
+
+Results
+Adempiere.exe - 0 error(s), 0 warning(s)
+
+
+
diff --git a/launch/jlaunch.rc b/launch/jlaunch.rc
new file mode 100644
index 0000000000..738bc46a99
--- /dev/null
+++ b/launch/jlaunch.rc
@@ -0,0 +1,73 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_JLUNCHM ICON DISCARDABLE "jlaunch.ico"
+IDI_JLUNCH ICON DISCARDABLE "jlaunchs.ico"
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/launch/jlaunchs.ico b/launch/jlaunchs.ico
new file mode 100644
index 0000000000..3e01ab70e5
Binary files /dev/null and b/launch/jlaunchs.ico differ
diff --git a/launch/resource.h b/launch/resource.h
new file mode 100644
index 0000000000..810160f96f
--- /dev/null
+++ b/launch/resource.h
@@ -0,0 +1,18 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by jlaunch.rc
+//
+#define IDI_ICON1 101
+#define IDI_JLUNCHM 104
+#define IDI_JLUNCH 105
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 102
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif