DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

+ Reply to Thread
Results 1 to 3 of 3
  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

Bookmarks

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


Top DevX Stories

Easy Web Services with SQL Server 2005 HTTP Endpoints
JavaOne 2005: Java Platform Roadmap Focuses on Ease of Development, Sun Focuses on the "Free" in F.O.S.S.
Wed Yourself to UML with the Power of Associations
Microsoft to Add AJAX Capabilities to ASP.NET
IBM's Cloudscape Versus MySQL


Sponsored Links