Ver Mensaje Individual
  #12 (permalink)  
Antiguo 01/11/2018, 17:01
LOBOLIGERO
 
Fecha de Ingreso: julio-2011
Mensajes: 3
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Java y FTP, subir archivos

Buenas.

Tengo el código para enviar un fichero a mi ftp y funciona correctamente desde ECLIPSE.
El problema se plantea cuando ejecuto la instrucción desde MSDOS para después crear una tarea programada que realice varias tareas y entre ellas, enviar un fichero por ftp.

Código Java:
Ver original
  1. [CODE]
  2.  
  3. import java.io.FileInputStream;
  4. import java.io.IOException;
  5.  
  6. import org.apache.commons.net.ftp.FTP;
  7. import org.apache.commons.net.ftp.FTPClient;
  8.  
  9. public class FtpPedidos {
  10.  
  11.     public static void main(String[] args) {
  12.  
  13.         // Creando nuestro objeto ClienteFTP
  14.         FTPClient client = new FTPClient();
  15.  
  16.         // Datos para conectar al servidor FTP
  17.         String ftp = "mi.servidor.ftp"; // También puede ir la IP
  18.         String user = "mi.usuario";
  19.         String password = "mi.contraseña";
  20.  
  21.         try {
  22.             // Conactando al servidor
  23.             client.connect(ftp);
  24.  
  25.  
  26.             // Logueado un usuario (true = pudo conectarse, false = no pudo
  27.             // conectarse)
  28.             if (client.login(user, password))
  29.             {
  30.                 client.setFileType(FTP.BINARY_FILE_TYPE, FTP.BINARY_FILE_TYPE);
  31.                 client.setFileTransferMode(FTP.BINARY_FILE_TYPE);
  32.                 client.enterLocalPassiveMode();
  33.      
  34.                 String filename = "mi.fichero";
  35.                
  36.                 FileInputStream fis = new FileInputStream(System.getProperty("user.dir")+"//"+filename);
  37.      
  38.                 // Guardando el archivo en el servidor
  39.                if (client.changeWorkingDirectory("mi.carpeta.ftp"))
  40.                     if (client.storeFile(filename, fis))
  41.                         System.out.println("Se ha grabado el fichero");
  42.                     else
  43.                         System.out.println("No se ha grabado el fichero");
  44.      
  45.                 // Cerrando sesión
  46.                 client.logout();
  47.      
  48.                 // Desconectandose con el servidor
  49.                 client.disconnect();
  50.             }  
  51.         } catch (IOException ioe) {
  52.             System.out.println(ioe.getMessage());
  53.         }
  54.    }
  55.  
  56. }
  57.  
  58. [/CODE]


Hasta aquí todo funciona perfectamente desde ECLIPSE.

Si ejecuto desde MSDOS como:

c:\java FtpPedidos

Obtengo la siguiente respuesta:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/net/ftp/FTPClient at FtpPedidos.main(FtpPedidos.java:12)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.net.ftp.FTPClient
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more

Cual puede ser el problema?
Gracias

Última edición por LOBOLIGERO; 01/11/2018 a las 17:08