comment exécuter en java un ensemble de commande ftp

comment exécuter en java un ensemble de commande ftp - Java - Programmation

Marsh Posté le 17-02-2009 à 12:25:18    

Salut
Comment exécuter en java un ensemble de commande ftp ou dos
 
merci

Reply

Marsh Posté le 17-02-2009 à 12:25:18   

Reply

Marsh Posté le 17-02-2009 à 13:26:10    

Pour du FTP tu peut utiliser la librairie apache commons-net qui inclus un client FTP.


---------------
Light is right
Reply

Marsh Posté le 17-02-2009 à 18:31:37    

J'ai pas bien compris tu peux m'indiquer le lien pour le downloader. Et l'utilisation svp

Reply

Marsh Posté le 17-02-2009 à 19:39:32    

La page d'accueil:
http://commons.apache.org/net/
 
Pour télécharger:
http://commons.apache.org/downloads/download_net.cgi
 
Et la Javadoc:
http://commons.apache.org/net/apidocs/index.html
 
Ce qui t'intéresse se trouve dans le package org.apache.commons.net.ftp


---------------
Light is right
Reply

Marsh Posté le 19-02-2009 à 11:06:53    

Merci ça m'a vraiment aidé j'arrive à me connecter au serveur avec le code suivant :  
 
 public void connexionServeurFTP( String server,String username,String password){
 
    FTPClient  ftp = new FTPClient ();
 
    //try {
     // Connect and logon to FTP Server
     int reply;
  try {
     ftp.connect(server);
     ftp.login(username,password);
     System.out.println("Connected to " + server + "." );
     System.out.print("Ftp reply :"+ ftp.getReplyString());
     // After connection attempt, you should check the reply code to verify
     // success.
     reply = ftp.getReplyCode();
     System.out.print("Reply code :"+ reply);
     if(!FTPReply.isPositiveCompletion(reply)) {
     ftp.disconnect();
      System.err.println("FTP server refused connection." );
      System.exit(1);
     }
     else{
      System.err.println("We are connected on the FTP server and will execut comande FTP." );
     }
     
   }
  catch (SocketException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
mais maintenant mon probléme est que si je tente d'exécuter des commandes sur le serveur il me renvoi l'exception suivante :  
 
java.lang.NullPointerException
 at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:471)
 at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:534)
 at org.apache.commons.net.ftp.FTP.cwd(FTP.java:758)
 at org.apache.commons.net.ftp.FTPClient.changeWorkingDirectory(FTPClient.java:716)
 at CommandeFTP.uploadFile(CommandeFTP.java:89)
 at projetMain.main(projetMain.java:18)
 
voici le code qui renvoi l'erreur ici je veux charger des fichiers dans le serveur:
 
     public void uploadFile(String server,String username,String password,String folder,String destinationFolder){
       
      conn.connexionServeurFTP(server, username, password);
         try {
          System.out.print("Début chargement fic dans serveur" );
          //ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
          ftp.changeWorkingDirectory(folder);
          File f=new File(folder);
          FileInputStream in= new FileInputStream("test.txt" );
          ftp.storeFile("test.txt",in);
        System.out.print("Fin chargement fic dans serveur" );
         }
         catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
         }
   
     }
             
si vous avez une idée veuillez m'aider svp                                                                                                                                                                                                                                                    

Reply

Marsh Posté le 19-02-2009 à 12:14:43    

Citation :

at org.apache.commons.net.ftp.FTPClient.changeWorkingDirectory(FTPClient.java:716)
 at CommandeFTP.uploadFile(CommandeFTP.java:89)


Code :
  1. public void uploadFile(String server,String username,String password,String folder,String destinationFolder){
  2.   ...
  3.   ftp.changeWorkingDirectory(folder);
 


Ton parametre folder doit être null;


Message édité par Bidem le 19-02-2009 à 12:15:29
Reply

Marsh Posté le 19-02-2009 à 13:12:45    

J'ai changer la méthode avec le code suivant et ça marche :  
 
    public static void getDataFile( String server,
             String username,
             String password,
             String folder,
             String destinationFolder){
try
{
// Connect and logon to FTP Server
FTPClient ftp = new FTPClient();
ftp.connect( server );
ftp.login( username, password );
System.out.println("Connected to " +  
     server + "." );
System.out.print(ftp.getReplyString());
 
// List the files in the directory
System.out.println("le status est : "+ftp.getStatus());
ftp.changeWorkingDirectory( folder );
ftp.stor("test1.txt" );
}
catch( Exception e )
{
e.printStackTrace();
}
}
 
Mais si je veux uploader plusieurs fichiers dans le repertoire ça ne passe pas  
Voici le code :  
 
    public static void getDataFile( String server,
             String username,
             String password,
             String folder,
             String destinationFolder){
try
{
// Connect and logon to FTP Server
FTPClient ftp = new FTPClient();
ftp.connect( server );
ftp.login( username, password );
System.out.println("Connected to " +  
     server + "." );
System.out.print(ftp.getReplyString());
 
// List the files in the directory
System.out.println("le status est : "+ftp.getStatus());
ftp.changeWorkingDirectory( folder );
File file = new File( folder + File.separator +"test.txt" );
File file1 = new File( folder + File.separator +"connexion.txt" );
 
InputStream fis1 = new FileInputStream(file);
InputStream fis2 = new FileInputStream(file1);
ftp.storeFile(file.getName(), fis);
ftp.storeFile(file1.getName(), fis1);
fis.close();
fis1.close();
}
catch( Exception e )
{
e.printStackTrace();
}
}
 

Reply

Marsh Posté le 19-02-2009 à 13:34:05    

C'est bon les gars ça marche j'avait fait une erreur lors de l'appel de la méthode je lui avais pas donné le bon chemin
 
merci tout le monde

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed