C++ > Lanceur C++ pour application Java

TitreLanceur C++ pour application Java
Postée le20-02-2010
Affichée628
Mini-lien
Description

Lanceur exécutable en C++ pour application Java

EtatNe contient pas d'erreurs. Ne contient pas d'erreurs.
Code d'insertion
Options
Afficher les numéros de lignes  Mettre la source en plein ecran  Selectionner la source  Partager sur Facebook 
Téléchargement Telecharger en format txt  Telecharger en format pdf  Telecharger en format cpp
Plein ecran
/**
 * Code permettant de réaliser un exectuable pour un code java
 * aussi bien sur Windows ou sur Linux
 *
 * Auteur : Jérôme Baudoux
 * www.jerome-baudoux.com
 */

#include <iostream>
#include <string>
#include <sstream>

#if defined(__WIN32__)
        #include <windows.h>
#else
        #include <stdlib.h>
        #include <stdio.h>
#endif

// -------------------------------------------------------------------------------------
// ICI REMPLACER "monPackage.MaClasse" par votre CLasse Java
// -------------------------------------------------------------------------------------
#define COMMANDE_JAVA           "package.Classe"
#define BIN_FOLDER                              "bin"

int main( int argc, char ** argv )
{
        std::ostringstream param;
       
        #if ! defined(__WIN32__)        
                param << "java ";      
        #endif

                // DEFINI LE PATH
                {
                        std::string path = std::string(argv[0]);
                        size_t slash = path.find_last_of("/\\");

                    param << "-cp \"";

                        if( slash > 0 )
                                param << path.substr(0,slash+1);

                    param << "BIN_FOLDER\" " << COMMANDE_JAVA;
                }

                // AJOUTE LES ARGUMENTS
        for(int i=1;i<argc;i++)
                param << " " << argv[i];

                // LANCE L'APPLICATION
        #if defined(__WIN32__)  
        ShellExecute(
                0,                          
                NULL,                      
                "java",
                param.str().c_str(),
                0,                          
                SW_HIDE);
        #else  
                system(param.str().c_str());
        #endif  

        return 0;
}