class Person 
{
int age;

void shout() 
{
int age = 60;
System.out.println("My age is " + age);
}

public static void main(String args[]) 
{
Person p1 = new Person();
Person p2 = new Person();
p1.age = 30;
//p2.age = 90;
p1.shout();
p2.shout();
}
}

解决方案 »

  1.   

    把你的错误信息帖出来,应该不是找不到main函数,而是找不到类。
    你用 java -classpath . Person 试试
      

  2.   

    Exception in thread "main" java.lang.NoSuchMethodError: main
      

  3.   

    用这个 java -classpath . Person  可以啦
    这是为什么呢?
      

  4.   

    我这里试了,没有问题。
    你编译通过了的吧?
    编译通过了用java -classpath . Person运行试试,是什么结果。
    下次帖错误信息最好贴完整一点,这样容易找到出错的地方。
      

  5.   

    应该是没找到类,不是没找到方法。
    要不就是找错了类,找到另一个地方编译好的Person类了,这个类没有main
      

  6.   

    你把你的java文件的名称取为 Person.java 就可以了
      

  7.   

    你把你的java文件的名称取为 Person.java 就可以了
      

  8.   

    你把你的java文件的名称取为 Person.java 就可以了
      

  9.   

    编译没有问题,运行这个类为什么找到其他地方Person类去了? 我是在这个路径执行java的啊
      

  10.   

    源程序的文件名我用的是Lesson3.java 这样也可以啊  , 是classpath 的问题 ,偶不太明白
      

  11.   

    D:\javawork\lesson3>set classpath
    classpath=D:\java;.;D:\tomcat\common\lib\servlet-api.jar难道上面的classpath路径是有顺序的? 先找到d:\java路径 , 然后才是本地路径(“.”) ?
      

  12.   

    java.lang.nodefClassFond.main 函数运行的时候,应该默认的去找你 java 文件名称对应的class去了 如果你定义的  
    java程序的名称 和你的 class 不同的话,就出这个错了。
      

  13.   

    我试了好像是有顺序 , 应该把"."放在classpath的最前面 , 这样先找的是当前路径的类 , 就不会找到其他路径的同名的类 。 呵呵 !
      

  14.   

    classpath=D:\java;.;D:\tomcat\common\lib\servlet-api.jar
    -->
    classpath=.;D:\java;D:\tomcat\common\lib\servlet-api.jar
      

  15.   

    class Person {
    int age; void shout() {
    int age = 60;
    System.out.println("My age is " + age);
    }
    }public class LianXi21 {
    public static void main(String args[]) {
    Person p1 = new Person();
    Person p2 = new Person();
    p1.age = 30;
    // p2.age = 90;
    p1.shout();
    p2.shout();
    }
    }
    这么做行吗?
      

  16.   

    我把这段代码编译了一遍,遇到如下提示,敢问各位大虾这是怎么回事?F:\Study\exercise>java Person
    Exception in thread "main" java.lang.UnsupportedClassVersionError: 
     Person (Unsupported major.minor version 49.0)
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(Unknown Source)
            at java.security.SecureClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$100(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            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)
            at java.lang.ClassLoader.loadClassInternal(Unknown Source)
      

  17.   

    你的代码中就有问题了,应该将这个类定义为public class Person
    不然这个类是private的怎么访问
      

  18.   

    不写public并不等于就是private
    不写public的意思是包外无法访问,同一包内可以访问
      

  19.   

    程序没有错误。javac编译程序不区分大小写。java运行程序是区分大小写的。
      

  20.   

    我不是很懂 JAVA, 但是age这个变量声明不重复吗?
      

  21.   

    程序没错我用的是Demo100.java 作为保存文件结果是两个60
      

  22.   

    main函数所在类要是public 类型的
      

  23.   

    我把这段代码编译了一遍,遇到如下提示,敢问各位大虾这是怎么回事?F:\Study\exercise>java Person
    Exception in thread "main" java.lang.UnsupportedClassVersionError: 
     Person (Unsupported major.minor version 49.0)
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(Unknown Source)
            at java.security.SecureClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$100(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            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)
            at java.lang.ClassLoader.loadClassInternal(Unknown Source)--------------------------------------------------------------------------嘿嘿,这个就是说要jdk1.5,
      

  24.   

    感觉LZ的代码有问题,既然在Class里面包含了public static void main...的方法
    那么这个class应该就命名成public class,LZ可以试一下
      

  25.   

    LZ可以将代码改成:
    public class Person {
      int age;
      
      void shout() { 
        int age = 60;
        System.out.println("My age is " + age);
      }  public static void main(String args[]) {
        Person p1 = new Person();
        Person p2 = new Person();
        p1.age = 30;
        //p2.age = 90;
        p1.shout();
        p2.shout();
      }
    }
    试一下?
      

  26.   

    main函数所在类要是public 类型的?
    没听说过啊!!!!
      

  27.   

    哈哈 我也是初学者  你把文件名写为Person.java
      

  28.   

    我试了一下这个程序,改成如下试一下,运行结果就是30和90了,按楼主的两个都是60
    class Person {
      int age;
      Person(){}
      void shout() {
        System.out.println("My age is " + age);
      }
      public static void main(String args[]) {
        Person p1 = new Person();
        Person p2 = new Person();
        p1.age = 30;
        p2.age = 90;
        p1.shout();
        p2.shout();
      }
    }
      

  29.   

    classpath  加上  .;
      

  30.   

    没人告诉lz怎么给分啊,我说,点击管理,然后进去分配分(多给俺点),然后输入密码就可以了。哈哈哈,JF
      

  31.   

    把Person.java中的class Person前加上public。只有在声明成public的类才可以有main函数,OK!!快给分
      

  32.   

    刚才说错了,我使用的是jdk1.5。看如下的类// 这两个类在同一个文件中Person.javaclass P
    {}
    class Person1
    {
    int age;void shout()
    {
    int age = 60;
    System.out.println("My age is " + age);
    }public static void main(String args[])
    {
    Person1 p1 = new Person1();
    Person1 p2 = new Person1();
    p1.age = 30;
    //p2.age = 90;
    p1.shout();
    p2.shout();
    }
    }编译javac Person.java  // 生成两个文件:Person1.class和P.class
    运行java Person1
    java P使用时要设上classpath = .  可以使用windows的设置变量设classpath。
      

  33.   

    大哥,你的age干嘛要定义两次?
      int age;
      
      void shout()
     { 
      int age = 60;
      System.out.println("My age is " + age);
      }
      

  34.   

    class Person 
    {
    int age;void shout() 
    {
    int age = 60;
    System.out.println("My age is " + age);
    }public static void main(String args[]) 
    {
    Person p1 = new Person();
    Person p2 = new Person();
    p1.age = 30;
    //p2.age = 90;
    p1.shout();
    p2.shout();
    }
    }
    没问题呀,返回值为:
    My age is 60
    My age is 60
      

  35.   

    错了,打错了,要相同的,main所在类的名称要与文件名相同