Problème avec chemin relatif [Résolu]

ulysse00 292 Messages postés lundi 6 novembre 2006Date d'inscription 12 mai 2013 Dernière intervention - 19 avril 2008 à 19:56 - Dernière réponse :  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
Afficher la suite 

13 réponses

Répondre au sujet
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 19 avril 2008 à 23:17
+3
Utile
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");
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Ombitious_Developper
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 20 avril 2008 à 11:42
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Ombitious_Developper
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 19 avril 2008 à 23:13
+1
Utile
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");
Commenter la réponse de Ombitious_Developper
ahmas82 3 Messages postés lundi 10 mai 2010Date d'inscription 24 janvier 2013 Dernière intervention - 24 janv. 2013 à 17:48
+1
Utile
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
Commenter la réponse de ahmas82
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 19 avril 2008 à 20:12
0
Utile
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");
Commenter la réponse de Ombitious_Developper
amine1234Z 134 Messages postés samedi 26 mai 2007Date d'inscription 31 mai 2010 Dernière intervention - 19 avril 2008 à 20:23
0
Utile
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
Commenter la réponse de amine1234Z
ulysse00 292 Messages postés lundi 6 novembre 2006Date d'inscription 12 mai 2013 Dernière intervention - 19 avril 2008 à 20:29
0
Utile
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
Commenter la réponse de ulysse00
ulysse00 292 Messages postés lundi 6 novembre 2006Date d'inscription 12 mai 2013 Dernière intervention - 19 avril 2008 à 20:36
0
Utile
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
Commenter la réponse de ulysse00
ulysse00 292 Messages postés lundi 6 novembre 2006Date d'inscription 12 mai 2013 Dernière intervention - 20 avril 2008 à 00:38
0
Utile
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
Commenter la réponse de ulysse00
cherine86 17 Messages postés vendredi 8 décembre 2000Date d'inscription 3 juillet 2012 Dernière intervention - 9 avril 2009 à 19:25
0
Utile
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.
Commenter la réponse de cherine86
yamihic 1 Messages postés dimanche 2 octobre 2005Date d'inscription 25 septembre 2009 Dernière intervention - 25 sept. 2009 à 16:37
0
Utile
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 ^^
Commenter la réponse de yamihic
baychen 5 Messages postés dimanche 21 février 2010Date d'inscription 10 mai 2011 Dernière intervention - 10 mai 2011 à 07:42
0
Utile
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\
Commenter la réponse de baychen
elhadjiseye - 30 mai 2013 à 22:53
0
Utile
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
Commenter la réponse de elhadjiseye

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.