Le xml en java, et programme en tache de fond... - Java - Programmation
Marsh Posté le 16-05-2005 à 17:59:09
tu pourrais etre plus clair? les packages sont pas trouves? tu veux dire les classes que tu importes pour gerer le xml ne sont pas trouves? -> probleme de CLASSPATH
et autrement, par taches de fond tu veux dire: minimiser la fenetre dans le tray ou autre chose?
Marsh Posté le 17-05-2005 à 11:24:07
1er PB
======
et bien je telecharge les maj des jdk pour xml et quand je compile, les imports ne marchent pas. En plus je ne suis pas du tout sur de ce que j'ai fait. Je dois gerer des profiles: nom_profiles, nom_server, mail, traitement. bien sur il y a plusieurs traitements, on peut en rajouter, supprimer modifier. J'ai fait ca...
import java.util.*;
import java.io.*;
import java.net.*;
import java.util.zip.*;
import java.io.File;
import java.util.logging.*;
import javax.net.ssl.*;
import java.security.*;
import javax.net.*;
import com.sun.xml.tree.*; // classe XML
import org.w3c.dom.*; // classe XML
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
import org.jdom.filter.*;
import java.util.List;
import java.util.Iterator;
public class Profile{
private String NomProfile;
private String NomServeur;
private String Email;
private String Traitement;
public Profile(String NomProfile, String Server, String Email, String Traitement){
this.creerFichierXml(NomProfile,Server,Email,Traitement);
}
public void creerFichierXml(String NomProfile, String Server, String Email, String Traitement){
// Créer le XML d'envoie.
Element racine = new Element("profiles" );
static org.jdom.Document document = new Document(racine);
Element profile = new Element("profile" ); // nouveau profile.
Element Nom_Profile = new Element("Nom_Profile" );
Nom_Profile.setText(NomProfile);
profile.addContent(Nom_Profile);
Element Nom_Server = new Element("Nom_Server" );
Nom_Server.setText(Server);
profile.addContent(Nom_Server);
Element EmailRapport = new Element("Email" );
EmailRapport.setText(Email);
profile.addContent(EmailRapport);
Element Application = new Element("Application" );
Application.setText(Traitement);
profile.addContent(Application);
racine.addcontent(profile);
}
public void ajouterProfile(String repertoire,String NomProfile, String Server, String Email, String Traitement)
{
// Ajoute le nouveau profile au fichier de config des profiles.
// L'on crée un instance du parseur SAXBuilder
SAXBuilder sxb = new SAXBuilder();
try
{
//L'on crée un nouveau document JDOM avec en argumant le fichier XML
//Le parsing est terminé
document = sxb.build(new File("./Atome_config.xml" ));
}
catch(Exception e){}
//L'on initialise un nouvel element racine avec l'element racine du document.
racine = document.getRootElement();
Element profile = new Element("profile" );
Element Nom_Profile = new Element("Nom_Profile" );
Nom_Profile.setText(NomProfile);
profile.addContent(Nom_Profile);
Element Nom_Server = new Element("Nom_Server" );
Nom_Server.setText(Server);
profile.addContent(Nom_Server);
Element EmailRapport = new Element("Email" );
EmailRapport.setText(Email);
profile.addContent(EmailRapport);
Element Application = new Element("Application" );
Application.setText(Traitement);
profile.addContent(Application);
racine.addcontent(profile); // on ajoute le nouveau profile a la racine du doc.
/**
* Sauver le fichier XML de config...
*/
}
public void supprimerProfile(String NomProfile)
{
// Supprime le profile
SAXBuilder sxb = new SAXBuilder();
org.jdom.Document document = sxb.build(new File("./Atome_config.xml" ));
Element racine = document.getRootElement();
// Dans un premier temps on list tous les étudiants
List listEtudiant = racine.getChildren("profile" );
Iterator i = listEtudiant.iterator();
//On parcours la liste grâce à un iterator
while(i.hasNext())
{
Element courant = (Element)i.next();
//Si le profile possède a le nom chch
if(courant.getTagName().equals(NomProfile))
{
//On supprime le profile de la racine
racine.removeChild(courant);
}
}
/**
* Sauver le fichier XML de config
*/
}
public String chercher_info(String Nom_Profile, String Champ_Profile)
{
// recherche le champ profile dans le Profile Nom_Profile
SAXBuilder sxb = new SAXBuilder();
org.jdom.Document document = sxb.build(new File("./Atome_config.xml" ));
Element racine = document.getRootElement();
//Dans un premier temps on list tous les étudiants
List listEtudiant = racine.getChildren("profile" );
Iterator i = listEtudiant.iterator();
//On parcours la liste grâce à un iterator
while(i.hasNext())
{
Element courant = (Element)i.next();
//Si le profile possède a le nom chch
if(courant.getTagName().equals(NomProfile))
{
if(courant.getChild(Champ_Profile)!=null)
{
return courant.getChild(Champ_Profile);
}
}
}
return null;
}
public void modifier_info(String Nom_Profile, String Champ_Profile)
{
// modifier le champ profile dans le Profile Nom_Profile
SAXBuilder sxb = new SAXBuilder();
org.jdom.Document document = sxb.build(new File("./Atome_config.xml" ));
Element racine = document.getRootElement();
// Dans un premier temps on list tous les étudiants
List listEtudiant = racine.getChildren("profile" );
Iterator i = listEtudiant.iterator();
//On parcours la liste grâce à un iterator
while(i.hasNext())
{
Element courant = (Element)i.next();
//Si le profile possède a le nom chch
if(courant.getTagName().equals(NomProfile))
{
if(courant.getChild(Champ_Profile)!=null)
{
//modifier le champ.
//enregistrer le fichier de config.
}
}
}
}
public void NextProfile() // recupere le profile suivant du profile courant.
{
}
public void PreviousProfile() // recupere le profile precedent du profile courant.
{
}
}
Gerer qqch comme ca quoi...
- <profiles>
- <profile>
<Nom_Profile> Auto </Nom_Profile>
<Nom_Serveur> rjd78656892 </Nom_Serveur>
<Email> MyMat@mail.com </Email>
<Application> std </Application>
</profile>
</profiles>
2eme PB
=======
Oui c'est une appli qui sera installé sur des servers et donc elle doit pouvoir tourner en tache de fond et si on veut minimiser la fentre... Je ne sais pas comment on fait, ou y a t il une autre solution...
Marsh Posté le 17-05-2005 à 11:29:02
balises [cpp]
Marsh Posté le 17-05-2005 à 12:02:32
- Utilise les balises
Code :
|
- Réduire la portée du problème avant de poser une question. Inutile de poster TOUT ton code.
- Topic "passage obligé pour débutants" et surtout topic "classpath" devraient t'apporter les réponses à tes questions.
Citation : les imports ne marchent pas. |
Un message d'erreur précis serait plus utile; encore qu'ici, on peut deviner.
Marsh Posté le 17-05-2005 à 12:15:52
Voici donc les imports... mais qd j'inmporte il ne les reconnait pas...
Code :
|
- Je veux bien ne pas tout mettre mais je voudrais bien aussi qu'on me dise ce qui ne va pas dans mon code pour gerer une base comme ca...
Code :
|
Marsh Posté le 17-05-2005 à 12:25:00
fait un echo de ton CLASSPATH et colles le ici pour voir
et l'erreur a la compilation aussi
Marsh Posté le 17-05-2005 à 12:27:48
et bien ca met des erreurs partout, vu que les imports ne sont pas reconnus... Tous les types liés au XML sont faux pour lui...
Je travaille avec eclipse. En plus c'est nouveau pour moi ce log, jamais utilisé, c'est a mon stage qu'on me demande de l'utiliser car c'est gratuit et pas mal j'avoue...
Marsh Posté le 17-05-2005 à 12:29:14
uriel a écrit : fait un echo de ton CLASSPATH et colles le ici pour voir |
Marsh Posté le 17-05-2005 à 12:30:12
Je ne suis pas a mon travail la..., je suis chez moi !!!
Mais des que j'y suis je te mets ca.
Merci
Marsh Posté le 17-05-2005 à 13:16:39
Citation : j'ai lu passage obligé pour débutants... |
Citation : Je travaille avec eclipse |
Le topic "débutant" est clair : ne pas utiliser d'IDE quand on débute. Il faut lire et mettre en application.
Ce conseil a été prodigué en raison des très nombreuses questions relatives à des CLASSPATH incorrects et d'autant plus incompris qu'on utilise un IDE.
Marsh Posté le 17-05-2005 à 13:47:21
Oui mais je voudrais bien qd mm trouver mon pb...
la classpath est:
%System.Root%System32
%System.Root%
c:\ProgramFiles\Java\j2re1.4.2_04\bin
c:\Sun\AppServer\jdk\bin
c:\Sun\jwxdp-1.5\jwsdp_shared\bin
voila !!!!
Marsh Posté le 17-05-2005 à 14:06:47
j'ai mm rajouté un version 5 que je n'avais pas mis et ca n'a rien chngé....
Marsh Posté le 17-05-2005 à 14:09:16
fertalamat a écrit : Oui mais je voudrais bien qd mm trouver mon pb... |
Tu le trouverais PRECISEMMENT si, comme le suggère le modeste tutoriel, tu n'utilisais pas un IDE, ce qui aurait pour effet de te forcer à COMPRENDRE comment fonctionne le classpath.
A contrario, si tu ne fais pas l'effort de comprendre et de mettre en application, te donner la réponse ne sert strictement à rien.
Marsh Posté le 17-05-2005 à 14:11:35
ton CLASSPATH est pas bon du tout, et je suis pas sur que tu ais saisi ce que CLASSPATH etait
http://forum.hardware.fr/hardwaref [...] 1088-1.htm
Marsh Posté le 17-05-2005 à 14:26:31
AH JE DOIS METTRE TOUS LES JARS DES MAJ RAJOUTÉS C EST CA ???
OUI MAIS J UTILISE DES IDE DEPUIS LGTPS SOUVENT JBUILDER...
DONC VOILA.
Marsh Posté le 17-05-2005 à 14:33:00
fertalamat> calmos.
vas lire le topic sur la classpath, tu comprendras mieux le problème ...
et tu n'as toujours pas donné le message d'erreur de la compilation
Marsh Posté le 17-05-2005 à 14:34:12
oui oui...
En tout cas je reviens vous voir si j'ai d'autres pb qd j'aurais compilé....
A plus et merci a tous
Marsh Posté le 17-05-2005 à 14:35:03
Bah je compile avec eclipse donc il souligne en rouge quasiment toute ma classe utilisant jdom...
Marsh Posté le 17-05-2005 à 14:37:39
ReplyMarsh Posté le 17-05-2005 à 14:40:52
Citation : OUI MAIS J UTILISE DES IDE DEPUIS LGTPS SOUVENT JBUILDER... |
Et tu vois où ça mène ? Nulle part de bon. jEdit ou notepad le temps de l'apprentissage.
Marsh Posté le 17-05-2005 à 14:43:06
j'en prends note, je vais m'y mettre mais pour l'instant je suis en stage et je voudrais finir mon projet...
Marsh Posté le 17-05-2005 à 16:48:43
Voila tout est fait... Pb n°1 reglé...
Maintenant en ce qui concerne le probleme numero 2: En fait mon application sera installé sur un serveur et donc tournera en tache de fond. Le tache de fond, il faut faire qque chose en particulier ou juste minimiser la fenetre ?? Et si c'est ca, comment fait on pour recuperer le fenetre par la suite ?
Marsh Posté le 18-05-2005 à 11:20:33
Maintenant en ce qui concerne le probleme numero 2:
En fait mon application sera installé sur un serveur et donc tournera en tache de fond. Le tache de fond, il faut faire qque chose en particulier ou juste minimiser la fenetre ??
Et si c'est ca, comment fait on pour recuperer le fenetre par la suite ?
Marsh Posté le 18-05-2005 à 13:39:03
en meme temps ca veut pas dire grand chose ta question ...
recuperer une fenetre minimisé, euh, tu cliques sur la barre de tache la ou est minimisé ta fenetre ?
Mais bon t'es sur un serveur ta fenetre tu peux la laisser ouverte non ?
Marsh Posté le 18-05-2005 à 13:42:13
ouais mais bon on me dis de faire ca....
En parlant de minimiser je parlais de la barre des taches en bas a droite. Mais est ce que ca rend la fenetre visible a nouveau automatiquement... ou il faut faire qqch de special
Marsh Posté le 18-05-2005 à 14:04:05
dans ce cas la regarde du coté de Jtray
http://www.javaapis.com/jtray/
doit y avoir d'autre mais j'ai pas en tete
Marsh Posté le 18-05-2005 à 14:05:34
Si c'est pour tourner en tache de fond pourquoi ne pas faire directement un service windows?
http://members.tripod.com/~hkseth/nt.html
Marsh Posté le 16-05-2005 à 17:56:51
Bonjour,
1er probleme:
------------
je suis sur un projet java et je dois gerer des profils en Java ( ajouter, supprimer, modofier...)
Mon boss me dis d'utiliser le xml, (qqch de nouveau pour moi...) et quand j-utilise des packages que je trouve ca me met des erreurscar ils ne sont pas trouvés.
Pourriez vous m'en donner un facile a utiliser et à trouver, pour ce que je veux faire.
2eme probleme:
--------------
Je voudrais savoir comment il faut faire pour qu'un programme avec fenetre se mette en tache de fond...
Et si on minimise la fenetre comment fait on pour le recuperer ???
Merci a tous.
Mat