Problème avec chemin relatif

Résolu
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 - 19 avril 2008 à 19:56
 elhadjiseye - 30 mai 2013 à 22:53
salut

je ne sais pas comment créer un chemin relatif
voila le code

package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.view.JasperViewer;
 
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
 
import com.mysql.jdbc.Driver;
 
 
publicclass test {
 
    publicstaticvoid main(String[] args){
 
        // - Paramètres de connexion à la base de données
        String url = "jdbc:mysql://localhost/test";
        String login = "root";
        String password = "*****";
 
        try{
            // - Connexion à la base
            Driver monDriver = new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(monDriver);
            Connection connection = DriverManager.getConnection(url, login, password);
 
            // - Chargement et compilation du rapport
            JasperDesign jasperDesign = JRXmlLoader.load("C:\\Documents and Settings\\B062A8AB\\Bureau\\classic.jrxml");
            JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
 
            // - Paramètres à envoyer au rapport
            Map parameters = new HashMap();
            parameters.put("Titre", "Titre");
 
            // - Execution du rapport
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
 
            // - Création du rapport au format PDF
            JasperExportManager.exportReportToPdfFile(jasperPrint, "C:\\Documents and Settings\\B062A8AB\\Bureau\\classic.pdf");
            JasperViewer.viewReport(jasperPrint,false);
        }catch(JRException e){
 
            e.printStackTrace();
        }catch(SQLException e){
 
            e.printStackTrace();
        }finally{
 
        }
 
    }
}
 

le problème avec cette ligne je ne sais pas comment rendre le chemin relatif
j'ai ajouté le fichier dans le meme repertoire de classe test 

 
// - Chargement et compilation du rapport
            JasperDesign jasperDesign = JRXmlLoader.load("C:\\Documents and Settings\\B062A8AB\\Bureau\\classic.jrxml");
 
j'espere que quelqu'un peut m'aider

13 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
19 avril 2008 à 23:17
Salut:

Au cas où le problème persiste.

1. Créer un répertoire reports près de la classe test. (près du fichier source).

2. Mets le fichier JRXML dans le répertoire reports.

3. Appel dans le code:

JasperDesign jasperDesign = JRXmlLoader.load("reports/classic.jrxml");
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
20 avril 2008 à 11:42
Salut:

"reports/classic.jrxml" est un chemin relatif qui dépend globalement de l'emplacement de l'application.
L'utilisation des chemins relatifs permet d'assurer la portabilité des programmes.

Un chemin absolu doit donner le chemin d'accès complet du répertoire en incluant le nom du lecteur logique et toutes l'arborescence pour y accèder.
L'utilisation des chemins absolus s'oppose à la portabilité des programmes.

Si tu encapsules ton application dans un fichier JAR, le répertoire "reports" et son contenu "classic.jrxml" et les autres fichiers s'ils existent et les autres ressources seront inclus automatiquement dans le fichier JAR.

Je travaille sous Eclipse, dans l'opération d'exportation de l'application en tant que JAR je coche/décoche les fichiers à exporter.
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
19 avril 2008 à 23:13
Salut:

Procédes comme je te suggèrais.

1. Créer un répertoire reports à la racine de ton projet.
(Je travaille sous Eclipse, le répertoire doit se trouver à côté des répertoires src et bin).

2. Mets le fichier JRXML dans le répertoire reports.

3. Appel dans le code:

JasperDesign jasperDesign = JRXmlLoader.load("reports/classic.jrxml");
1
ahmas82 Messages postés 3 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 24 janvier 2013 1
24 janv. 2013 à 17:48
salut a tous j'ai un problème dans ireport j'ai une liste de personne dans ma base de donnée mysql et je veux faire des états dans ireport en intégrant les images. mes états fonctionne mais je ne sais pas comment integrer une immage dans ireport
je génere mes fichiers avec l'extension .jrxml
svp plait c'est urgent si quelqu'un peut m'expliquer comment integrer l'image
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
19 avril 2008 à 20:12
Salut:

Utilises un chemin relatif par rapport à ton application Java.

Par exemple, crées un répertoire reports près de ton application Java.

JasperDesign jasperDesign = JRXmlLoader.load("reports/classic.jrxml");
0
amine1234Z Messages postés 134 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 mai 2010 4
19 avril 2008 à 20:23
Salut

Si ta ajouté le fichier classic.jrxml dans le meme repertoire de ta classe test
tu doit faire comme ça :

           JasperDesign jasperDesign = JRXmlLoader.load("./classic.jrxml");

bon courage
0
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 1
19 avril 2008 à 20:29
mais ça fonctionne pas
j'ai mis le fichier xml dans le meme répertoire de fichier test mais ça fonctionne pas des erreurs car le chemin est introuvable
je vous montre un chemin relatif pour ajouter une image
j'ai mis l'image dans le meme répertoire
jLabel1.setIcon(new ImageIcon(test.class.getResource("7.jpg")));

mais je ne sais pas comment faire avec le fichier classic.jrxml

est ce que vous avez une idée
0
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 1
19 avril 2008 à 20:36
voila les erreurs

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: .\classic.jrxml (Le fichier spécifié est introuvable)
 at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:172)
 at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:152)
 at mahboul.test.actionPerformed(test.java:141)
 at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
 at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
 at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
 at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
 at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
 at java.awt.Component.processMouseEvent(Component.java:5100)
 at java.awt.Component.processEvent(Component.java:4897)
 at java.awt.Container.processEvent(Container.java:1569)
 at java.awt.Component.dispatchEventImpl(Component.java:3615)
 at java.awt.Container.dispatchEventImpl(Container.java:1627)
 at java.awt.Component.dispatchEvent(Component.java:3477)
 at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
 at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
 at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
 at java.awt.Container.dispatchEventImpl(Container.java:1613)
 at java.awt.Window.dispatchEventImpl(Window.java:1606)
 at java.awt.Component.dispatchEvent(Component.java:3477)
 at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
 at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
 at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Caused by: java.io.FileNotFoundException: .\classic.jrxml (Le fichier spécifié est introuvable)
 at java.io.FileInputStream.open(Native Method)
 at java.io.FileInputStream.(FileInputStream.java:106)
 at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:167)
 ... 25 more
0
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 1
20 avril 2008 à 00:38
merci le deuxième cas fonctionne bien
j'ai projet essaie contient deux fichier src contient test.java et fichier   reports contient classic.jrxml
j'ai lu un tutorial sur le chemin relatif et chemin absolu
est ce que c'est un chemin relatif ou absolu ? ("reports/classic.jrxml")

et comment faire si je veux executer l'executable test.jar sur un autre pc
0
cherine86 Messages postés 17 Date d'inscription vendredi 8 décembre 2000 Statut Membre Dernière intervention 3 juillet 2012
9 avril 2009 à 19:25
salut à tous alors moi je travaille aussi avec le ireports pour les états de sorties alors j'aimerai bien que l'un de vous m'aide pour afficher le resultat du pdf en cilquant sur un bouton relié à ce pdf  ce bouton que je pourrais nommé imprimer merci d'avance et bon courage à tous.
0
yamihic Messages postés 1 Date d'inscription dimanche 2 octobre 2005 Statut Membre Dernière intervention 25 septembre 2009
25 sept. 2009 à 16:37
merci grâce à vous j'ai pu résoudre le problème de chemin mais un autre problème m'est apparut pour une raison que j'ignore on m'affiche l'erreur suivante :
java.lang.NoClassDefFoundError: org/springframework/core/io/Resource
alors que je travail avec NetBeans 6.5.1/JSF 1.2/Tomcat 6.22/jasper 3.0.1/ireport
si vous avez une solution pour mon problème sauvez moi svp ^^
0
baychen Messages postés 5 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 10 mai 2011
10 mai 2011 à 07:42
Salut tout le monde , je pense que la bonne idéé est :

JasperDesign jasperDesign = JRXmlLoader.load(System.getProperty("user.dir")+"/webapps/Ese/resources/banques.jrxml");


System.getProperty("user.dir") : retourne le répertoire ou s'execute le fichier.

System.getProperty("user.dir"):ça affiche
D:\Documents and Settings\Administrateur\Mes documents\NetBeansProjects\Ese
par contre si je déploie l'application
System.getProperty("user.dir") donne ça :
D:\Program Files\Apache Software Foundation\Apache Tomcat 6.0.20\bin\
0
elhadjiseye
30 mai 2013 à 22:53
Bonsoir les Amis Je veux creer mon jar avec des fichiers .jrxml mais quand je suis sur Netbeans sa marche mais si je le met sur un .jar il ne voit pas mes fichiers , j'ai creer mes fichiers jrxml dans la racine sur un dossier report
0
Rejoignez-nous