Solved

java.lang.ClassNotFoundException (main class not found)

Posted on 2009-03-30
5
942 Views
Last Modified: 2013-12-15
Hi,

I was working with a 2D graphing example (actually got the example from here) and I was trying to plot some additional points .

After writing code to do so I noticed when running the program the code was stepping through the old code (ie not running sequentially, making bizarre jumps, etc)

So after some googling I decided to clean my project (Project --> Clean)

Now I'm getting an error that says the main class cannot be found, which is quite odd since it was working fine until I "cleaned" it.

I am using java 1.6 and the latest version of eclipse.  Below is my code.

Thanks !!

Bryan


import javax.swing.*;

import java.awt.*;

import java.util.*;
 

public class DrawGraphExam extends JFrame

{
 
 

    public DrawGraphExam()

    {

        super("Glove Data Representation");
 

        setSize(300,300);

        setDefaultCloseOperation(EXIT_ON_CLOSE);

        setLocationRelativeTo(null);
 

        Container c = getContentPane();

        c.setLayout(new BorderLayout());

        Graph gloveGraph = new Graph(getPoints());

        //c.add(new Graph(getPoints()));

        c.add(gloveGraph);

        gloveGraph.setPoint(10);

        //gloveGraph.drawPoint(g)

    }
 

    private HashMap getPoints()

    {

        HashMap points = new HashMap();

        points.put(new Integer(6), new Integer(5));

        points.put(new Integer(3), new Integer(3));

        points.put(new Integer(7), new Integer(4));

        points.put(new Integer(1), new Integer(7));

        points.put(new Integer(4), new Integer(2));

        return points;

    }
 

    public static void main(String[] args)

    {

    

        new DrawGraphExam().show();

    	System.out.println("test");

    	//DrawGraphExam gloveGraph  = new DrawGraphExam();

    	//gloveGraph.show();

    	System.out.println("test");

    }

    //public void plotPoint()
 

}
 

class Graph extends Canvas

{

    private HashMap points;

    private int x0;

    private int y0;

    private int b = 25;

    private int gap = 20;

    private int tw = 5;

    //begin berg's code

    private int xOld = 0;

    private int yOld = 0;

    private int xCurrent;

    private int yCurrent;

    //end berg
 

    public Graph(HashMap points)

    {

        this.points = points;

        setBackground(Color.white);

    }
 

    public void paint(Graphics g)

    {

        super.paint(g);

        drawLine(g);

        drawPoints(g);

        drawPoint(g);

    }
 

    public void drawLine(Graphics g)

    {

        Dimension d = getSize();

        x0 = b;

        y0 = d.height - b;
 

        Graphics2D g2 = (Graphics2D)g;

        g2.setColor(Color.blue);

        g2.setStroke(new BasicStroke(1.5f));
 

        g2.drawLine(x0, y0, d.width-x0, y0); // horizontal line

        g2.drawLine(x0, y0, x0, b); // vertical line

        

        int ticksY = (int) (y0 - b)/gap;

        int ticksX = (int) (d.width-2*x0)/gap;
 

        int yx = y0;

        for(int i=0; i<ticksY; i++) // draw vertical ticks

        {

            yx -= gap;

            g2.drawLine(x0, yx, x0-tw, yx);

            g2.drawString(String.valueOf(i*10), x0, yx);

        }
 

        int xx = x0;

        for(int i=0; i<ticksX; i++) // draw horizontal ticks

        {

            xx += gap;

            g2.drawLine(xx, y0, xx, y0+tw);

            g2.drawString(String.valueOf(i*10), xx, y0);

        }

    }
 

    public void drawPoint(Graphics g){

        Graphics2D g2 = (Graphics2D)g;

        g2.setColor(Color.RED);

        g2.setStroke(new BasicStroke(1f));

        g2.drawLine(xOld, yOld, xCurrent, yCurrent);

        System.out.println("drawing point at " + xOld);

       

    }

    public void setPoint(int y){

    	xCurrent = xOld + 10; // for now making increments of 5

    	yCurrent = y;

    }

    private void drawPoints(Graphics g)

    {

        if(points != null)

        {

            Graphics2D g2 = (Graphics2D)g;

            g2.setStroke(new BasicStroke(1f));

            ArrayList list = new ArrayList(points.keySet());

            Collections.sort(list); // sorts list of x-set

            Iterator xset = list.iterator();

            int x,y;

            int cX = -1, cY = -1;

            int r = 3;

            while(xset.hasNext())

            {

                Integer key = (Integer)xset.next();

                x = x0 + (key.intValue() * gap);

                y = y0 - (((Integer)points.get(key)).intValue() * gap);

                g.fillRect(x,y,r,r);

                if(cX > 0 && cY > 0)

                {

                    g.drawLine(cX, cY, x, y);

                }

                cX = x;

                cY = y;

            }

        }

    }

}

Open in new window

0
Comment
Question by:bryanberg
5 Comments
 
LVL 92

Expert Comment

by:objects
ID: 24024654
check your java file is inside a source folder in your project
and make sure you are running the right class

0
 
LVL 15

Expert Comment

by:fsze88
ID: 24025704
what's your classpath? missed classpath=.\;    ?
0
 
LVL 1

Expert Comment

by:Tavic
ID: 24031888
It's a problem with your project or file names, not your code.  I can compile and run the code you provided just fine.
0
 
LVL 86

Accepted Solution

by:
CEHJ earned 500 total points
ID: 24032449
>>
Now I'm getting an error that says the main class cannot be found, which is quite odd since it was working fine until I "cleaned" it.
>>

Just try rebuilding the project and running again
0
 

Author Closing Comment

by:bryanberg
ID: 31564605
I had to remove the the source folder and than readd it in order to prompt the rebuild.  For some reason my code was not rebuilding on its own, eventhough I had the option selected to build automatically. Anyone had issues like this ?

Thanks !!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
This theoretical tutorial explains exceptions, reasons for exceptions, different categories of exception and exception hierarchy.

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now