lapartdombre | Voici une partie de mon code
Code :
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.LineNumberReader;
- import java.io.Reader;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.StringTokenizer;
- /**
- * @author cleclercq
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
- public class TestTraitement
- {
- /*********************************************************************************************************************
- *
- *
- * DECLARATION DES VARIABLES
- *
- *
- ********************************************************************************************************************/
- ///// Parametres pour le fichier de plannification des jobs
- final static String MOT_TITRE_JOB= "SCHEDULE";
- final static String MOT_NEW_JOB= "JOB";
- final static String MOT_HEURE_JOB ="AT"; // mot clé pour l'heure de démarrage du traitement
- final static String MOT_CONFIRMED_JOB ="CONFIRMED"; // mot clé de confiramtion de l’achèvement du traitement si elle est demandée
- final static String MOT_EVERY_JOB ="EVERY"; // mot clé de l'intervalle de répétition de l’exécution du traitement
- final static String MOT_FOLLOWS_JOB= "FOLLOWS"; // mot clé pour les Tâches planifiés ayant dû s’achever correctement pour que le planning puisse se lancer
- final static String MOT_OPENS_JOB= "OPENS"; // mot clé pour les fichiers devant être présent pour que le traitement puisse s’exécuter
- final static String MOT_PRIO_JOB="PRIORITY"; // mot clé pour la priorité d’exécution du traitement
- final static String MOT_PROMPT_JOB="PROMPT"; // mot clé pour le message devant être validé pour que le traitement puisse s’exécuter
- final static String MOT_UNTIL_JOB ="UNTIL"; // mot clé de l'heure maximale à laquelle le traitement peut démarrer
- final static String MOT_FIN_JOB ="END"; // mot clé de fin des jobs
- final static String MOT_NEEDS ="NEEDS";
- final static String MOT_NEEDS_JOB ="NEEDS";
- //// informations sur le cpu
- final static String MOT_MARQUANT_NOM_CPU="cpuname"; // Mot identifiant le nom d'un CPU dans le fichier
- final static String MOT_MARQUANT_ADRESSE_TCP="tcpaddr" ; // Mot identifiant l'adresse IP dans le fichier
- final static String MOT_MARQUANT_SYSTEME_EXPLOITATION="os" ; // Mot identifiant le systeme d'exploitation dans le fichier
- /// informations sur les ressources
- final static String CHAINE_INTERDITE_RESSOURCE="$RESOURCE";
- //// informations sur les jobs
- final static String CHAINE_MOTS_NOM_FICHIER_SCRIPTNAME="SCRIPTNAME"; // Mots-cle du fichier de script à executer
- final static String CHAINE_MOTS_NOM_FICHIER_COMMANDE="DOCOMMAND"; // Mots-cle de la ligne de commande
- final static String CHAINE_MOTS_NOM_USER_MAESTRO="STREAMLOGON" ; // Mots-cle de StreamLogon
- final static String CHAINE_MOTS_DESCRIPTION="DESCRIPTION"; // Mots-cle de Description
- final static String CHAINE_MOTS_RECOVERY ="RECOVERY" ; // Mots-cle de Recovery
- final static String CHAINE_INTERDITE_JOB ="$JOBS"; // Mots que la ligne ne doit pas contenir pour etre analysee */
- /// informations sur les schedules
- final static String MOT_TITRE="SCHEDULE"; // mot clé de la ligne de schedule
- final static String MOT_CALENDAR="ON"; // mot clé du calendrier d'execution du planning
- final static String MOT_EXCEPT="EXCEPT"; // suite du calendrier d'execution
- final static String MOT_HEURE="AT"; // mot clé de l'heure d'execution du planning
- final static String MOT_CARRYFWD ="CARRYFORWARD"; // mot clé de l'option carry forward
- final static String MOT_FOLLOWS="FOLLOWS"; // mot cle des tâches planifiés ayant dû s’achever correctement pour que le planning puisse se lancer
- final static String MOT_LIMIT ="LIMIT"; // mot clé du nombre maximal de tâches du planning pouvant être lancées en parallèles
- final static String MOT_OPENS="OPENS"; // mot clé des fichiers devant être présent pour que le planning puisse s’exécuter
- final static String MOT_PRIO ="PRIORITY"; // mot clé de priorité d'execution de la schedule
- final static String MOT_PROMPT ="PROMPT"; // mot clé du Message à afficher en cas d’échec du planning
- final static String MOT_UNTIL ="UNTIL"; // mot clé de l'heure maximal à laquelle le planning peut démarrer
- final static String CHAR_DEBUT_PLANN_JOB=":" ; // Caractere de debut de liste des jobs d'un schedule
- final static String CHAINE_FIN_PLANN_JOB ="END" ; // Caractere de fin de liste des jobs d'un schedule
- final static String CHAINE_CARRYFORWARD ="CF"; // mot clé pour l'option carry forward
- final static String CHAINE_CONFIRMED ="CONFIRMED"; // mot clé pour la confirmation de l'achévement du traitement demandée à l'utilisateur
- // avant cloture de l'execution du traitement si demandée par l'utilisateur
- /// informations sur la dépendances des jobs
- // ATTENDEUR
- final static int POS_DEBUT_JOB_CPU_NAME_A=2;
- final static int POS_FIN_JOB_CPU_NAME_A = 10;
- final static int POS_DEBUT_JOB_NAME_A =18;
- final static int POS_FIN_JOB_NAME_A = 28;
- final static int POS_DEBUT_SCHED_NAME_A =58;
- final static int POS_FIN_SCHED_NAME_A =66;
- // ATTENDU
- final static int POS_DEBUT_SCHED_CPU_NAME_B =274;
- final static int POS_FIN_SCHED_CPU_NAME_B =282;
- final static int POS_DEBUT_SCHED_NAME_B =290;
- final static int POS_FIN_SCHED_NAME_B = 298;
- final static int POS_DEBUT_JOB_CPU_NAME_B =306;
- final static int POS_FIN_JOB_CPU_NAME_B =314;
- final static int POS_DEBUT_JOB_NAME_B =322;
- final static int POS_FIN_JOB_NAME_B =334;
- /// informations sur la dépendances des jetons
- final static int POS_DEBUT_RESS_CPU_NAME =2;
- final static int POS_FIN_RESS_CPU_NAME = 10;
- final static int POS_DEBUT_RESS_NAME = 18;
- final static int POS_FIN_RESS_NAME=26;
- final static int POS_DEBUT_RESS_SCHEDULE_CPU_NAME= 274;
- final static int POS_FIN_RESS_SCHEDULE_CPU_NAME =282;
- final static int POS_DEBUT_RESS_SCHEDULE_NAME =290;
- final static int POS_FIN_RESS_SCHEDULE_NAME =298;
- final static int POS_DEBUT_RESS_JOB_CPU_NAME =306;
- final static int POS_FIN_RESS_JOB_CPU_NAME =314;
- final static int POS_DEBUT_RESS_JOB_NAME = 322;
- final static int POS_FIN_RESS_JOB_NAME = 330;
- final static int POS_DEBUT_RESS_UNITS = 365;
- final static int POS_FIN_RESS_UNITS = 370;
- /*********************************************************************************************************************
- *
- *
- * DECLARATION DES FONCTIONS
- *
- *
- *********************************************************************************************************************/
- /**
- * Method estMotCleSchedule
- *
- * @param chaine mot
- * @return boolean
- * retourne vrai si le mot passé en parametre fait parti des mots cles des schedules
- */
- public static boolean estMotCleJob(String mot)
- {
- if ((mot.compareTo(MOT_TITRE_JOB)==0) || (mot.compareTo(MOT_NEW_JOB)==0) ||(mot.compareTo(MOT_HEURE_JOB)==0)
- ||(mot.compareTo(MOT_CONFIRMED_JOB)==0) ||(mot.compareTo(MOT_EVERY_JOB)==0) ||(mot.compareTo(MOT_FOLLOWS_JOB)==0)
- ||(mot.compareTo(MOT_OPENS_JOB)==0) ||(mot.compareTo(MOT_PRIO_JOB)==0) ||(mot.compareTo(MOT_NEEDS_JOB)==0)
- ||(mot.compareTo(MOT_PROMPT_JOB)==0) ||(mot.compareTo(MOT_FIN_JOB)==0) ||(mot.compareTo(MOT_UNTIL_JOB)==0)||(mot.compareTo(MOT_CALENDAR)==0))
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- /**
- * Method ouvrirConnexion
- *
- * ouvre une connexion à Oracle
- */
- static Connection ouvrirConnexion() throws SQLException
- {
- DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
- String userName = "system";
- String password = "manager";
- // connection à la base de données
- String url = "jdbc:oracle:thin:@stat9007:1521:ADMORA8I";
- Connection conn = DriverManager.getConnection (url,userName,password);
- // mettre en mode de commit manuel
- conn.setAutoCommit(false);
- return(conn);
- }
- /**
- * Method enleveGuillemet.
- * @param chaine, début
- */
- private static String enleveGuillemet(String chaine, int debut)
- {
- if (chaine.compareTo("" )!=0)
- {
- chaine=chaine.substring(debut,chaine.length()-1);
- }
- return chaine;
- }
- /**
- * Method doubleQuote
- * @param chaine
- * traitement de la chaine pour doubler les quotes
- */
- private static String doubleQuote(String chaine)
- {
- int index = chaine.indexOf("'" );
- int temp=-1;
- while ((temp!=index) && (index>-1) )
- {
- temp=index;
- chaine=chaine.substring(0, temp)+ "''" + chaine.substring(temp+1,chaine.length());
- index = chaine.indexOf("'",temp+2);
- }
- return chaine;
- }
- /***************************************************************************************************************
- * Method genereFichierCpu.
- * @param fileSource
- * @return int
- ***************************************************************************************************************/
- static int genereFichierCpu(File fileSource) throws FileNotFoundException, NullPointerException
- {
- int resultat = 1;
- // information sur le CPU
- String cpuName=""; // nom du CPU
- String tcpAdresse=""; // adresse IP
- String operatingSystem=""; // systeme d'exploitation
- if (fileSource.exists())
- {
- // si le fichier existe
- try
- {
- String lex="";
- // Création du flot de lecture par caractères
- Reader r =new FileReader(fileSource);
- // Création du flot de lecture par ligne
- LineNumberReader source = new LineNumberReader(r);
- while (source.ready())
- {
- // Lecture d'une nouvelle ligne
- String line = source.readLine();
- StringTokenizer st =new StringTokenizer(line,"# " );//2 séparateurs # et espace
- while (st.hasMoreTokens())
- {
- // parcours de la ligne tant qu'elle contient des mots
- lex = st.nextToken();
- if (lex.compareTo(MOT_MARQUANT_NOM_CPU)==0)
- {
- // insertion des données du cpu précédent dans la base de donnée
- try
- {
- // chargement du pilote de la base de donnees
- try
- {
- Class.forName("oracle.jdbc.driver.OracleDriver" );
- }
- catch(Exception ex)
- {
- ex.printStackTrace();
- }
- //ouverture d'une connexion
- Connection connection=ouvrirConnexion();
- // requete à executer
- String query;
- // verification que le champs CPU est bien renseigné car il ne peut pas être vide dans le table de la base
- if (cpuName.compareTo("" )!=0)
- {
- query="insert into BASEQ.TEST_SERVEUR (BASEQ.TEST_SERVEUR.SRV_CPU , BASEQ.TEST_SERVEUR.SRV_IP , BASEQ.TEST_SERVEUR.SRV_OS) values ('" + cpuName + "','"+ tcpAdresse +"' , '" + operatingSystem +" ')";
- Statement statement = connection.prepareStatement(query);
- // execution de la requete
- ResultSet resultset2=statement.executeQuery(query);
- statement.close();
- }
- // fermeture de la connexion
- connection.close();
-
- }
- catch (Exception e)
- {
- System.out.println(e.getMessage());
- }
- // initialisation des varaibles
- cpuName=""; // nom du CPU
- tcpAdresse=""; // adresse IP
- operatingSystem=""; // systeme d'exploitation
- // nom du cpu (serveur)
- cpuName=st.nextToken();
- }
- else if (lex.compareTo(MOT_MARQUANT_ADRESSE_TCP)==0)
- {
- // adresse tcp
- tcpAdresse=st.nextToken();
- }
- else if (lex.compareTo(MOT_MARQUANT_SYSTEME_EXPLOITATION)==0)
- {
- // systeme d'exploitation
- operatingSystem=st.nextToken();
- }
- }
- }
- // execution de la dernière requete
- try
- {
- // chargement du pilote de la base de donnees
- try
- {
- Class.forName("oracle.jdbc.driver.OracleDriver" );
- }
- catch(Exception ex)
- {
- ex.printStackTrace();
- }
- //ouverture d'une connexion
- Connection connection=ouvrirConnexion();
- // requete à executer
- String query;
- // verification que le champs CPU est bien renseigné car il ne peut pas être vide dans le table de la base
- if (cpuName.compareTo("" )!=0)
- {
- query="insert into BASEQ.TEST_SERVEUR (BASEQ.TEST_SERVEUR.SRV_CPU , BASEQ.TEST_SERVEUR.SRV_IP , BASEQ.TEST_SERVEUR.SRV_OS) values ('" + cpuName + "','"+ tcpAdresse +"' , '" + operatingSystem +" ')";
- Statement statement = connection.prepareStatement(query);
- // execution de la requete
- ResultSet resultset2=statement.executeQuery(query);
- statement.close();
- }
- // fermeture de la connexion
- connection.close();
-
- }
- catch (Exception e)
- {
- System.out.println(e.getMessage());
- }
- resultat = 0;
- }
- catch( java.io.FileNotFoundException f )
- {
- }
- catch( java.io.IOException e )
- {
- }
- return( resultat );
- }
- else
- {
- System.out.println ("Le fichier d'entrée n'existe pas : CPU" );
- return resultat;
- }
- }
- public static void main(String[] args)
- {
- int i= genereFichierCpu(new File("C:\\Documents and Settings\\cleclercq\\Mes documents\\maestro\\cpu" ));
- }
- }
|
J'ai l'impression que eclipse utilise l'ancien fichier .class, car quand j'essaye de dupliquer mon programme sour un autre nom et le recompiler j'ai comme message d'erreur java.lang.NoClassDefFoundError: TestTraitement
Exception in thread "main" |