problem fails when class is inside package but works when inside


DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Results 1 to 3 of 3

Thread: problem fails when class is inside package but works when inside

  1. #1
    Join Date
    Aug 2002
    Posts
    22

    problem fails when class is inside package but works when inside

    I have a class FtpExample that calls a bean.
    However for some reason when I package this class
    as part of the "ftp" folder and I run the program it always gives me errors. Please note in the example FtpExample is inside a folder called "ftp".

    Below is error:

    C:\java-coding\ftpbean\FTP>java FtpExample
    Exception in thread "main" java.lang.NoClassDefFoundError: FtpExample (wrong nam
    e: ftp/FtpExample)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
    3)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)

    C:\java-coding\ftpbean-package-Example-inside\FTP>


    It is strange the error is not given when I run the FtpExample class outside of the "ftp" package.
    and thus instead of

    package ftp;

    I have statement

    import ftp.*;

    I want to use the "FtpExample.java" class inside the ftp package.

    Code:
    package ftp;
    
    class FtpExample implements FtpObserver
    {
        FtpBean ftp;
        long num_of_bytes = 0;
    
        public FtpExample()
        {
            // Create a new FtpBean object.
            ftp = new FtpBean();
        }
    
        // Connect to a ftp server.
        public void connect()
        {
            try
            {
                ftp.ftpConnect("whale.wxx.ac.uk", "w***", "****");
            } catch(Exception e)
            {
                System.out.println(e);
            }
        }
    
        // Close connection
        public void close()
        {
            try
            {
                ftp.close();
            } catch(Exception e)
            {
                System.out.println(e);
            }
        }
    
        // Go to directory pub and list its content.
        public void listDirectory()
        {
            FtpListResult ftplrs = null;
    
            try
            {
                // Go to directory 
                ftp.setDirectory("/home/eland/u6/k3074/w0109699/simple-bean");
                // Get its directory content.
                ftplrs = ftp.getDirectoryContent();
            } catch(Exception e)
            {
                System.out.println(e);
            }
    
            // Print out the type and file name of each row.
            while(ftplrs.next())
            {
                int type = ftplrs.getType();
                if(type == FtpListResult.DIRECTORY)
                    System.out.print("DIR\t");
                else if(type == FtpListResult.FILE)
                    System.out.print("FILE\t");
                else if(type == FtpListResult.LINK)
                    System.out.print("LINK\t");
                else if(type == FtpListResult.OTHERS)
                    System.out.print("OTHER\t");
                System.out.println(ftplrs.getName());
            }
        }
    
        // Get the file.
        public void getFile()
        {
            try
            {
                // Get the binary file and save it to
                // the name 'local_file_name' in the hard disk.
                  ftp.getBinaryFile("accessbean.jsp", "local_file_name", this);
            } catch(Exception e)
            {
                System.out.println(e);
            }
        }
    
        // Implemented for FtpObserver interface.
        // To monitor download progress.
        public void byteRead(int bytes)
        {
            num_of_bytes += bytes;
            System.out.println(num_of_bytes + " of bytes read already.");
        }
    
        // Needed to implements by FtpObserver interface.
        public void byteWrite(int bytes)
        {
        }
    
        // Main
        public static void main(String[] args)
        {
            FtpExample example = new FtpExample();
            example.connect();
            example.listDirectory();
            example.getFile();
            example.close();
        }
    }

  2. #2
    Join Date
    Jul 2002
    Posts
    26
    When using a class within a package it is necessary to inclue its package name when launching it. Instead of java FtpExample, try java ftp.FtpExample.

    -gc

  3. #3
    Join Date
    Aug 2002
    Posts
    22
    thanks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center