|
|
|
|
Configuration: Windows 2000 Internet Explorer 6.0
Salut,
Il faut également mettre ton classpath dans le fichier manifest; pour un exemple, tu peux regarder ici: http://www.commentcamarche.net/forum/affich 6764261 java probleme de jar, post n° 4 A +
|
Oui, tu peux très bien inclure le fichier .properties dans le jar. A ce moment-là, tu peux avoir accès depuis ton code JAva avec quelque chose du genre
File configFile = new File("props/config.xml"); //$NON-NLS-1$ FileInputStream fis = new FileInputStream(configFile); ... en supposant que le fichier config.xml réside dans un sous répertoire props à la racine du jar. et j'ai été obligée de créer un sous fichier lib dans lequel je mets ma classe externe <== là je n'ai pas trop compris ce que tu veux faire... Quelle est exactement ta classe externe et quels sont les fichiers annexe dont tu parles? En ce qui concerne le jar, tu peux y inclure tout ton travail (fichiers class, fichiers de configuration comme le .properties, fichiers ressources comme les images...) et avoir dans le classpath du manifest les jars nécessaires (celui avec les drivers de la base de donnée, par exemple). ++
|
Mé euh, cette paresse... :)
J'avais demandé également: - le code de connexion à la BD (utilises-tu des valeurs dans le fichier properties?) - le rapport d'erreur (j'avais bien lu que sous Eclipse il n'y a pas d'erreur, voyons^^ Tu l'exécutes en dehors d'Eclipse et copies-colles le rapport ==> pour ce faire, dans le try..catch tu mets un e.printStackTrace()) A+
|
Bon, OK.
Il y a 2 erreurs dans ton stack trace. La première, ClassNotFound est exclusivement liée à cette ligne: Class.forName ("oracle.jdbc.driver.OracleDriver");
==> solution: renseigne correctement ton classpath dans le jar en pointant vers classes12.jar (avec le bon chemin, s'il n'est pas déployé dans le même répertoire que le fichier jar contenant le manifest dont on parle) - Par ailleurs, pourquoi utiliser classes12 et ne pas utiliser les nouveaux drivers bien plus performants (disponibles sur le site d'Oracle)? - De mémoire, encore, classes12 venait était dispo sous un format zip, l'astuce était de le renommer en .jar, sinon même s'il figurait dans le classpath (avec l'extension zip), il n'était pas pris en compte. Mais je vois qu'il est en .jar dans ton classpath du manifest ==> vérifier que sur le disque il est également en .jar et pas .zip. - Vérifier également qu'il est au même endroit que ton jar avec le manifest (sinon modifie le classpath dans le manifest). - Finalement, modifie la partie classpath de ton jar de la manière suivante: avant Class-Path: classes12.jar après Class-Path: . classes12.jar La 2ème erreur concerne la localisation du fichier .properties. Je te conseille les étapes suivantes: - sous Eclipse, crée un folder (pas un package), disons props - déplace le fichier .properties dans le répertoire props - modifie ton code de lecture du fichier comme je te l'ai montré au post n° 3 - teste si c'est OK sous Eclipse - lorsque tu construis ton jar, n'oublie pas de rajouter le répertoire props - teste si c'est OK en dehors d'Eclipse Une fois que ça marche, si ton code a pour destin autre chose qu'être du jetable pour l'apprentissage, pense à: - le nettoyer (finally pour les ressources, pas de code dupliqué, élimination des commentaires et des System.out inutiles etc) - changer de drivers (plus de classes12!) - éventuellement: utiliser un DataSource, gérer des pools de connexion etc. ++ (tu me dois 3 bières :-p)
|
Résultats pour exécutable .jar
Résultats pour exécutable .jar
Résultats pour exécutable .jar
Résultats pour exécutable .jar
Résultats pour exécutable .jar
Résultats pour exécutable .jar