IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

[HSQLDB / Bukkit] Chargement driver et classpath


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 45
    Points : 14
    Points
    14
    Par défaut [HSQLDB / Bukkit] Chargement driver et classpath
    Bonjour,

    Je travaille sur un plugin pour un serveur de jeu pour pouvoir se connecter à une BDD non persistante stockée en RAM. La bdd en question est HSQLDB.

    Je travaille sur Eclipse

    Je dois donc en premier lieu dans Java charger le driver "org.hsqldb.jdbc.JDBCDriver" comme il est dit dans le tutoriel fourni par HSQLDB. Donc logiquement je fais la même chose qu'avec le driver JDBC mysql que j'arrive à utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      try
        {
          Class.forName("org.hsqldb.jdbc.JDBCDriver");
          return null;
        } catch (ClassNotFoundException ed) {
          ed.printStackTrace(); 
        }
    Et bien évidement j'ai l’exception qui me revient dans la tronche.... Bon du coup je commence mes recherches et je me rends compte que je ne comprends absolument pas comment Eclipse fonctionne entre buildpath et classpath, donc j’approfondis mes recherches.

    Maintenant je crois avoir compris que le buildpath c'est ce que l'IDE utilise pour compiler les sources et le classpath la même chose mais utilisée pour l’exécution.

    Alors déjà j'ai une question qui me taraude depuis le début c'est : "pourquoi Eclipse n'intègre pas les externals jars dans la nouvelle jar pour pas a dépendre d'autres jars lors de l’exécution ?"

    Bon après avoir compris ça je me tourne bien sur vers la FAQ JDBC developpez.net qui est un peu ma bible ces derniers jours et je tombe sur l'article qui parle du driver ("Comment charger un Driver") et qui précise bien que le driver doit se trouver dans le classpath...

    Logique me direz vous ! Donc je commence à partir à la recherche du classpath et comment le définir avec Eclipse et ses milliards de paramètres. En cherchant sur le net on me dit qu'il faut que je mette la jar hsqldb.jar dans les externals jars => donc dans le build path, et quid du classpath ?

    Je finis par trouver un fichier dans le dossier du package dans le workspace:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
        <classpathentry kind="src" path="src"/>
        <classpathentry kind="src" path="externalJars"/>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7.0_13"/>
        <classpathentry kind="lib" path="C:/MineCraft/eclipse/externalJars/hsqldb.jar"/>
        <classpathentry kind="lib" path="C:/MineCraft/eclipse/externalJars/bukkit.jar"/>
        <classpathentry kind="output" path="bin"/>
    </classpath>
    C'est sans équivoque !

    Ces deux lignes montrent bien que l'archive est dans le classPath.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <classpathentry kind="lib" path="C:/MineCraft/eclipse/externalJars/hsqldb.jar"/>
    <classpathentry kind="src" path="externalJars"/>
    Je précise aussi que j'ai trouvé un code qui permet de voir les Driver chargés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Print out all loaded JDBC drivers.
        Enumeration<Driver> er = java.sql.DriverManager.getDrivers();
        while (er.hasMoreElements()) {
          Object driverAsObject = er.nextElement();
          this.logger.info("JDBC Driver=" + driverAsObject);
        }
    Résultat:


    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Dans eclipse, le build path est le classpath.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Points : 559
    Points
    559
    Par défaut
    Bonjour,
    si j'ai bien compris, ça fonctionne normalement sous Eclipse (puisque le jar du Driver est bien dans le build-path), mais le driver n'est pas trouvé quand tu exécutes ton appli à partir du jar que tu as créé...

    Le build-path est bien utilisé pour la construction (et l'exécution sous Eclipse), et le class-path lors de l'exécution en dehors de l'IDE.

    Si ton jar ne trouve pas les libs, c'est que le class-path n'est pas spécifié, ou pas correctement spécifié.

    Les informations que tu as trouvées dans le fichier .classPath ne sont utilisées que par Eclipse, elles ne sont pas utilisées lors de l'exécution (utilisées par Eclipse si tu veux recréer un projet à partir d'un jar existant).

    Pour correctement spécifier le class-path de ton appli (sans utiliser d'outils spécifiques Ant, maven...), tu peux :

    Définir le classpath de ton application dans le fichier MANIFEST.MF du dossier META-INF de ton jar :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Manifest-Version: 1.0
    Main-Class: net.test.MainClass
    Class-Path: ./lib/uneLib.jar /C:/folder/uneAutreLib.jar
    ou alors tu peux définir le class-path à l'exécution, avec l'option -Djava.ext.dirs=folderToLibs pour un jar dans un fichier batch (pas terrible)...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 45
    Points : 14
    Points
    14
    Par défaut
    Donc ca veut dire que le jar dont dépend mon jar doit aussi se trouver sur la machine ? Comment peut on faire pour qu'il soit directement intégré dans le projet et donc dans le jar final ?

    De plus, changer la meta inf a donné une autre erreur de pointerNullException. J'ai lu dans une des nombreuses pages que j'ai parcouru que ça pouvvait encore venir du classpath => je tente avec un chemin absolu.

    Le principal truc qui me chifonne c'est que je dois ouvrir le jar après compilation pour changer le META-INF ? C'est quand même bizarre comme principe, il doit bien y avoir un moyen de le faire avant non ?


    En tout cas un grand merci pour vos réponses.

  5. #5
    Membre confirmé
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Points : 559
    Points
    559
    Par défaut
    Citation Envoyé par prisonier Voir le message
    Le principal truc qui me chifonne c'est que je dois ouvrir le jar après compilation pour changer le META-INF ? C'est quand même bizarre comme principe, il doit bien y avoir un moyen de le faire avant non ?
    Oui, dans Eclipse, à la création du jar, tu peux spécifier le fichier MANIFEST.MF existant à utiliser (à la dernière étpape de l'assistant - use existing manifest from workspace-), ce qui t'évite de farfouiller dans le jar après sa création.
    Citation Envoyé par prisonier Voir le message
    Donc ca veut dire que le jar dont dépend mon jar doit aussi se trouver sur la machine ? Comment peut on faire pour qu'il soit directement intégré dans le projet et donc dans le jar final ?
    Tu peux dézipper le jar du driver et l'inclure dans ton projet, puis l'intégrer dans le jar que tu vas créer...
    Ou alors utiliser des outils comme one-jar

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 45
    Points : 14
    Points
    14
    Par défaut
    Ok je vais essayer de trouver ça. En attendant ça ne marche toujours pas avec ce manifest:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Manifest-Version: 1.0
    Main-Class: org.kapital.PermissionBlock
    Class-Path: ../hsqldb/lib/hsqldb.jar

    Arborescence:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    server:
        -run_server.bat
        -plugin:
             -PermissionBlock.jar
        -hsqldb
            -lib
                -hsqldb.jar
    Je vous donne aussi tout mon code, je vous précise qu'il marche comme il se doit avec du MySql, mais c'est un jeu ou l'on casse des blocks et comme à chaque bloc cassé je lance une connection en database, j'ai le droit à un joli "too many connections", du coup je veux tenter avec une bdd embarquée dans le plugin qui est entre 10 et 40 fois plus rapide d'accès selon les benchmarks du developpeur.



    La class event (lignes intéressantes => 60-65)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    package org.kapital.PermissionBlock;
     
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.logging.Logger;
     
    import org.bukkit.block.Block;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    import org.bukkit.event.block.BlockPlaceEvent;
     
     
    public class PermissionBlockEvent implements Listener {
    	  public static PermissionBlock plugin;
    	  public final Logger logger = Logger.getLogger("Minecraft");
    	  private double px;
    	  private double pz;
    	  private double py;
     
    	  public PermissionBlockEvent(PermissionBlock instance)
    	  {
    	    plugin = instance;
    	  }
     
    	  @EventHandler
    	  public void placeBlock(BlockPlaceEvent event) {
    	    Player p = event.getPlayer();
    	    String id = p.getUniqueId().toString();
    	    Block b = event.getBlock();
    	    if(!blockIsInPlot(b, p, id)){
    	    	event.setCancelled(true);
    	    }
    	  }
     
     
    	  @EventHandler
    	  public void removeBlock(BlockBreakEvent event) {
    		    Player p = event.getPlayer();
    		    String id = p.getUniqueId().toString();
    		    Block b = event.getBlock();
    		    if(!blockIsInPlot(b, p, id)){
    		    	event.setCancelled(true);
    		    }
    	  }  
     
    	  public boolean blockIsInPlot(Block b, Player p, String id){
    		  	this.px = b.getX();
    		    this.pz = b.getZ();
    		    this.py = b.getY();
     
    		    String req = 
    		    "SELECT p.origin, p.dimension FROM plot_list p INNER JOIN mc_entity en ON p.entitykId = en.entitykId WHERE en.mId = '" + 
    		      id + "'";
    		    try
    		    {
    		      Connection conn = (Connection) new HsqlConnection().connect();
    		      Statement stat = conn.createStatement();
    		      ResultSet result = stat.executeQuery(req);
     
    		      if (result.first()) {
    		        String origin = result.getString("origin");
    		        String dim = result.getString("dimension");
     
    		        String xsign = String.valueOf(origin.charAt(0));
    		        String ysign = String.valueOf(origin.charAt(5));
    		        String x = origin.substring(1, 5);
    		        String z = origin.substring(6, 10);
    		        double ny = Double.parseDouble(origin.substring(10));
     
    		        double diml = Double.parseDouble(dim.substring(0, 2));
    		        double dimw = Double.parseDouble(dim.substring(2, 4));
    		        double dimh = Double.parseDouble(dim.substring(4));
     
    		        double modx = xsign.equals("0") ? -1 : 1;
    		        double modz = ysign.equals("0") ? -1 : 1;
     
    		        double nx = Double.parseDouble(x) * modx;
    		        double nz = Double.parseDouble(z) * modz;
     
    		        if ((nx >= this.px) || (this.px >= nx + diml) || (nz >= this.pz) || (this.pz >= nz + dimw) || (ny >= this.py) || (this.py >= ny + dimh))
    		        {
    		        	return false;
    		        }else{
    		        	return true;
     
    		        }
    		      }
    		      conn.close();
     
    		    } catch (SQLException e) {
    		    	e.printStackTrace();
    		    	return false;
    		    }
    			return false;
    	  }
     
     
    }

    La class HsqlConnection appelée dans mon event

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    package org.kapital.PermissionBlock;
     
    import java.sql.Connection;
    import java.sql.Driver;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.util.Enumeration;
    import java.util.logging.Logger;
     
     
    public class HsqlConnection {
     
      private Connection conn;
      public final Logger logger = Logger.getLogger("Minecraft");
     
     
      public Connection connect()
      {
        String url = "jdbc:hsqldb:mem:dbtest";
        String user = "root";
        String pwd = "";
     
     
        try
        {
          Class.forName("org.hsqldb.jdbc.JDBCDriver");
          return null;
        } catch (ClassNotFoundException ed) {
          ed.printStackTrace(); 
        }
     
        // Print out all loaded JDBC drivers.
        Enumeration<Driver> er = java.sql.DriverManager.getDrivers();
        while (er.hasMoreElements()) {
          Object driverAsObject = er.nextElement();
          this.logger.info("JDBC Driver=" + driverAsObject);
        }
     
        try {
          return this.conn = DriverManager.getConnection(url, user, pwd);
        }
        catch (SQLException e) {
     
          this.logger.info("SQL CONNECTION ERROR");
          e.printStackTrace();
     
        } 
        return null;
      }
     
      public void close()
      {
        try
        {
          this.conn.close();
        }
        catch (SQLException e) {
          e.printStackTrace();
        }
      }
    }

    Je retourne à mes recherches sur le classpath et le manifest a donner à eclipse.

  7. #7
    Membre confirmé
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Points : 559
    Points
    559
    Par défaut
    si tu mets :
    Class-Path: ./../hsqldb/lib/hsqldb.jar
    ce sera ok avec ton arborescence

    Le premier . (point) faisant référence au dossier en cours

  8. #8
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    je dirais plutot "Class-Path: ./hsqldb/lib/hsqldb.jar"
    vu que le repertoire courant c'est la ou il y a le .bat pas la ou il y a le jar (a moins que tu change de repertoire)
    sinon tu peu definire le classpath a l'execution java -cp <classpath> ect... (le -cp et ignorer si tu lance un jar avec un classpath dans le manifest me semble)

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 45
    Points : 14
    Points
    14
    Par défaut
    Toujours pas... C'est déprimant ce genre de problèmes...
    Pour info j'ai vérifié dans le jar hsqldb que JDBCDriver existait bien.

    J'ai la même erreur venant de l'enregistrement du driver avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Class.forName("org.hsqldb.jdbc.JDBCDriver");
    Du coup j'ai "no suitabledriver found for jdbc:hsqldb:mem:dbtest"

    puis pour finir NullPointerException.


    J'ai aussi essayé avec le chemin en absolu:

    /C:/Minecraft/server/servername/hsqldb/lib/hsqldb.jar

    Sans résultat


    EDIT:

    testé aussi en relatif depuis le .bat avec
    ./hsqldb/lib/hsqldb.jar

    Même résultat

  10. #10
    Membre confirmé
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Points : 559
    Points
    559
    Par défaut
    Citation Envoyé par unknow0 Voir le message
    je dirais plutot "Class-Path: ./hsqldb/lib/hsqldb.jar"
    vu que le repertoire courant c'est la ou il y a le .bat pas la ou il y a le jar (a moins que tu change de repertoire)
    effectivement, c'est une piste :
    si ton bat fait un changement de dossier courant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd c:\minecraft\server...
    java -jar tonJar.jar
    ça change le class-path à mettre

  11. #11
    Membre confirmé
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Points : 559
    Points
    559
    Par défaut
    peux tu nous mettre le fichier bat également

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 45
    Points : 14
    Points
    14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    java -Xms1024M -Xmx1024M -jar craftbukkit.jar -o false
    PAUSE
    craftbukkit.jar c'est le serveur minecraft

  13. #13
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    le manifest a changer c'est donc celui de craftbukkit :p
    mais le plus simple serait d'utiliser le -cp ^^

  14. #14
    Membre confirmé
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Points : 559
    Points
    559
    Par défaut
    C'est bien ce jar là que tu recrées, et dans lequel tu intègres tes nouvelles classes ?

    parce que sinon, c'est effectivement le MANIFEST de celui là qu'il faut modifier

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 45
    Points : 14
    Points
    14
    Par défaut
    Franchement, heuresement que vous etes là j'aurais pu chercher longtemps...

    Je dois ajouter à mon bat:

    "-cp c:/minecraft/server/servername/hsqldb/lib/hsqldb.jar" ?

    Merci encore

  16. #16
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    oui ou juste "./hsqldb/lib/hsqldb.jar"

  17. #17
    Membre confirmé
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Points : 559
    Points
    559
    Par défaut
    Citation Envoyé par unknow0 Voir le message
    le manifest a changer c'est donc celui de craftbukkit :p
    mais le plus simple serait d'utiliser le -cp ^^

    je crois bien que -cp ou -classpath est ignoré sur le lancement d'un jar (en tous les cas si le jar a un manifest)

    par contre, on peut le définir dans le batch :
    SET CLASSPATH=%CLASSPATH%;c:\minecraft\server....
    java -Xms1024M -Xmx1024M -jar craftbukkit.jar -o false

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 45
    Points : 14
    Points
    14
    Par défaut
    Ni l'un ni l'autre, aucun changement...

  19. #19
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    erf ><

    definire le class-path dans le manifest de craftbukkit alors :s
    mais bon c'est pas super pratique quoi :s

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 45
    Points : 14
    Points
    14
    Par défaut
    Ouai c'est carrément bricolé car à chaque nouveau package il faut que j'ajoute dans le META INF.

    Mais il y a forcément une autre solution ! Par exemple le driver mysql je n'ai eu besoin que de l'enregistrer en tant qu'external jar dans eclipse et le driver était enregistré à l'execution du programme.

    Donc en gros ya pas besoin d'aller changer le manifest de bukkit, j'en suis sur.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Erreur chargement driver SQL
    Par CrashBC dans le forum Bases de données
    Réponses: 15
    Dernier message: 12/01/2013, 12h28
  2. [HSQLDB] Erreur de chargement du driver
    Par ouachani1 dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 17/08/2011, 19h28
  3. Probleme de chargement Driver DBDC
    Par safiy dans le forum JDBC
    Réponses: 13
    Dernier message: 12/03/2008, 20h14
  4. [debutant] probleme chargement driver (jdbc, mysql)
    Par ADSL[fx] dans le forum JDBC
    Réponses: 9
    Dernier message: 12/03/2006, 12h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo