954,545 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

problem in "static method and variable declaration"

i am newbie to java.i am trying to run a program to show "static method" and "static variable ".my code is below.i am compling it on netbeans 7.01 and everytime i am getting the error.:
"main method not found in class static_demo.Static_demo, please define the main method as:
public static void main(String[] args)"
please help me in executing the code.

package static_demo;
public class Static_demo {
int a=10;
static int b=20;
static void show()
{
    System.out.println("the value of b:"+b);
}
void anothershow()
{
    System.out.println("value of a"+a);
}
}
     class static_demo1
    {
    public static void main(String[] args) 
    {
        
        x1.show();
        x1 v=new x1();
        v.anothershow();
    }

    }
jt_4285
Newbie Poster
4 posts since Jan 2012
Reputation Points: 10
Solved Threads: 0
 

try putting your main method into the Static_demo class, and remove the inner class where you've actually put it in.

stultuske
Posting Sensei
3,137 posts since Jan 2007
Reputation Points: 1,114
Solved Threads: 433
 

Apart from what stultuske said , I think you are executing static_demo class. Instead run static_demo1 class. Also you need to create object of static_demo in main(). What is x1 ? You should be calling it as static_class.show().

DJSAN10
Posting Whiz in Training
249 posts since Dec 2010
Reputation Points: 38
Solved Threads: 26
 
Apart from what stultuske said , I think you are executing static_demo class. Instead run static_demo1 class. Also you need to create object of static_demo in main(). What is x1 ? You should be calling it as static_class.show().


since it would be in the same class file, he could just use

show();


for the anothershow() method, he should indeed create an instance of Static_demo instead of an instance of a (as far as we know not existing) x1.

as for the other one, don't say: apart from -> that means, do both.
if he moves the main method to the Static_demo class and then tries to run the static_demo1 class, he would get exactly the same error, since: the main method will not be found

stultuske
Posting Sensei
3,137 posts since Jan 2007
Reputation Points: 1,114
Solved Threads: 433
 

since it would be in the same class file, he could just use Java Syntax (Toggle Plain Text)

show();

Yes trueas for the other one, don't say: apart from -> that means, do both.
if he moves the main method to the Static_demo class and then tries to run the static_demo1 class, he would get exactly the same error, since: the main method will not be found
Well thanks for correcting me. You are right ,'apart from' is misleading. But anyways you posted what I actually wanted to convey :)

DJSAN10
Posting Whiz in Training
249 posts since Dec 2010
Reputation Points: 38
Solved Threads: 26
 

thank you very much for the reply.
Stultsuke .i have done whatever u have suggested .but the same error is coming.
is there problem with my netbeans?
its 7.0.1
whenever i m writing any program on it ,it is showing the same error ,"Could not find or load main class"
i m new to java ,i cant understand what is the error.
please suggest me.

jt_4285
Newbie Poster
4 posts since Jan 2012
Reputation Points: 10
Solved Threads: 0
 

can you post your current code?

stultuske
Posting Sensei
3,137 posts since Jan 2007
Reputation Points: 1,114
Solved Threads: 433
 
thank you very much for the reply. Stultsuke .i have done whatever u have suggested .but the same error is coming. is there problem with my netbeans? its 7.0.1 whenever i m writing any program on it ,it is showing the same error ,"Could not find or load main class" i m new to java ,i cant understand what is the error. please suggest me.


hmm well as far as i see the problem is how you are doing your main method, beacuse in your code it is placed wrongly. a standard java program should be like this:

package javaapplication14;

public class JavaApplication14 {

    private static void printhello() {
        System.out.println("Hello");
        System.exit(0);
    }

    public static void main(String[] args) {
        printhello();
    }
}


use that code and see if it will run which it should if not your netbeans is messed!

also if you want to add another class it should be done like this:

package javaapplication14;

public class JavaApplication14 {

    private static void printhello() {
        System.out.println("Hello");
    }//end of printhello()

    public static void main(String[] args) {
        printhello();
        printbye.bye();//calling method in printbye class
        System.exit(0);
    }//end of main

    public static class printbye {
        
    private static void bye() {
        System.out.println("Bye");
    }//end of bye()
    
    }//end of printbye class
}//end of JavaApplication14 class


please note that my main class 'JavaApplication14' contains the main method and not the 'printbye' class. A java app may only have one main method in its main class, it cant have a main class with a sub class that holds the main method! main method must be present in you main class. also not all classes are enclosed within my main class.

DavidKroukamp
Practically a Master Poster
Team Colleague
693 posts since Dec 2011
Reputation Points: 282
Solved Threads: 169
 

Also , the class that contains your main() class should be your filename. Execute that class then.

DJSAN10
Posting Whiz in Training
249 posts since Dec 2010
Reputation Points: 38
Solved Threads: 26
 

mmm... the last two posts didn't really give any advice that wasn't given already.

Since the OP said he/she did all that, and it still doesn't work:

@OP: if you still have the problem, could you post the code you have now?

stultuske
Posting Sensei
3,137 posts since Jan 2007
Reputation Points: 1,114
Solved Threads: 433
 
//import java.lang.*;
package static_demo1;
    public class Static_demo1 {
    int a=10;
    static int b=20;
    private static void show()
    {
    System.out.println("the value of b:"+b);
    }
     private void anothershow()
    {
    System.out.println("value of a"+a);
    }
    }
    class static_demo2
    {
    public static void main(String[] args)
    {
     
    show();
    static_demo2 v=new static_demo2();
    v.anothershow();
  
}
    }


thank-you everyone for helping me.Stultsuke i still have the same problem.
this is my present code .its my first static example.when i am running it it is giving the error:"Main method not found in class static_demo1.Static_demo1, please define the main method as:
public static void main(String[] args)"
if you have another example to show static method give suggest me.

jt_4285
Newbie Poster
4 posts since Jan 2012
Reputation Points: 10
Solved Threads: 0
 

look at your classes... you have the main method defined in the class that is not the main...

you class structure should look like this:

//import java.lang.*;
package static_demo1;

public class Static_demo1 {

    private static void show() {
    }

    public static void main(String[] args) {
    }
}

class static_demo2 {

    public void anothershow() {
    }
}
DavidKroukamp
Practically a Master Poster
Team Colleague
693 posts since Dec 2011
Reputation Points: 282
Solved Threads: 169
 

you still have not done what I suggested. the problem is, your compiler searches for the main method within the public class Static_demo, but it is not inside that class.
move the main method to the public class

class static_demo2
{
public static void main(String[] args)
{
 
show();
static_demo2 v=new static_demo2();
v.anothershow();
 
}
}

move the main method outside of this inner class, like this:

public static void main(String[] args)
{
 
show();
static_demo2 v=new static_demo2();
v.anothershow();
 
}
class static_demo2
{

}


and, you'll need an anothershow method in your inner class.

stultuske
Posting Sensei
3,137 posts since Jan 2007
Reputation Points: 1,114
Solved Threads: 433
 
if you have another example to show static method give suggest me.

i'd also just like to say, the problem you are having is not about static methods...
Static means that only one of it can exist. main() method will always be static as we cant have two main methods in a single class.
The problem you are dealing with is that you have put your main method in a sub class and not the main class. the main class is defined by the name of the file which the source code is present...your main class is: 'Static_demo1' where as your sub class is: 'static_demo2' and that is the class in which your main() is present i hope this helps to understand your problem better.

DavidKroukamp
Practically a Master Poster
Team Colleague
693 posts since Dec 2011
Reputation Points: 282
Solved Threads: 169
 
//import java.lang.*;
package static_demo1;
    public class Static_demo1 {
    int a=10;
    static int b=20;
    private static void show()
    {
    System.out.println("the value of b:"+b);
    }
     private void anothershow()
    {
    System.out.println("value of a"+a);
    }
    }
    class static_demo2
    {
    public static void main(String[] args)
    {
     
    show();
    static_demo2 v=new static_demo2();
    v.anothershow();
  }

}

this is my present code.i m not able to get the solution to the error"main class not found".as i newbie to java,i want to do an static example .so please help me

jt_4285
Newbie Poster
4 posts since Jan 2012
Reputation Points: 10
Solved Threads: 0
 
//import java.lang.*;
package static_demo1;
    public class Static_demo1 {
    int a=10;
    static int b=20;
    private static void show()
    {
    System.out.println("the value of b:"+b);
    }
     private void anothershow()
    {
    System.out.println("value of a"+a);
    }
    }
    class static_demo2
    {
    public static void main(String[] args)
    {
     
    show();
    static_demo2 v=new static_demo2();
    v.anothershow();
  }

}

this is my present code.i m not able to get the solution to the error"main class not found".as i newbie to java,i want to do an static example .so please help me


your show() and anothershow() methods should be public and not private or else your code in static_demo2 cannot access them. also this here :

static_demo2 v = new static_demo2();

should be:

Static_demo1 v=new Static_demo1()

the reason is because anothershow() is located in the class Static_demo1 and not static_demo2.

also accessing your show() method like this

show();


does not work as its not located in the static_demo2 class it should be:

Static_demo1.show();


and lastly your main method in static_demo2 should be moved too Static_demo1 class, as thats your main class hence the error message main method not found in Static_demo1-thus eliminating the use for static_demo2.. if you would like to retain static_demo2, then move all the methods located in Static_demo1 to static_demo2. then move the main method in static_demo2 to Static_demo1 and rename the names in main method from Static_demo1 to static_demo2.

I cant give you the code but heres some guideline after all the editing your structure should resemble this:

public class Static_demo1 {

    public static void main(String[] args) {
       static_demo2.sho..........
       static_demo2 v=......
       v.ano.......
       
    }
}

class static_demo2 {

    int y;
    static int x;

    public static void show() {
    }

    public void anothershow() {
    }
}
DavidKroukamp
Practically a Master Poster
Team Colleague
693 posts since Dec 2011
Reputation Points: 282
Solved Threads: 169
 
//import java.lang.*;
package static_demo1;
    public class Static_demo1 {
    int a=10;
    static int b=20;
    private static void show()
    {
    System.out.println("the value of b:"+b);
    }
     private void anothershow()
    {
    System.out.println("value of a"+a);
    }
    }
    class static_demo2
    {
    public static void main(String[] args)
    {
     
    show();
    static_demo2 v=new static_demo2();
    v.anothershow();
  }

}

this is my present code.i m not able to get the solution to the error"main class not found".as i newbie to java,i want to do an static example .so please help me


we have repeatedly told you what the problem is and (with code examples) how to solve it. try, if need be, step by step to do what we suggested.

cOrRuPtG3n3t!x was friendly enough to, yet again, repeat it one more time, now please, be so kind as to read his post and do as he suggests, step by step, so you can see the differences in result.

stultuske
Posting Sensei
3,137 posts since Jan 2007
Reputation Points: 1,114
Solved Threads: 433
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: