源码如下:
===========================================================================
class Hello

 public static void main(String args[])
 { 
 System.out.println("Hello"); 
 } 
}
===========================================================================
下面是运行后的出错信息。的确有点莫名其妙!!C:\Java\MyJava>javac hello.java
.\String.java:3: 需要 ';'
        public static void main(String[] args) throws IOException String[]
                                                                  ^
.\String.java:3: 找不到符号
符号: 类 IOException
位置: 类 String
        public static void main(String[] args) throws IOException String[]
                                                      ^
.\String.java:3: 缺少方法主体,或声明抽象
        public static void main(String[] args) throws IOException String[]
                           ^
3 错误如此简单的代码,我实在找不出哪里错了,而且搞了一下午,估计是环境有问题,但是还是搞不定
请教各位,多谢!!!

解决方案 »

  1.   

    C:\Java\MyJava>javac hello.java这句,应该是javac Hello.java,文件名和类名字大小写一致。试试看!
      

  2.   

    class Hello

     public static void main(String args[])
     { 
     System.out.println("Hello"); 
     } 
    }
    应该是:
    public class Hello

     public static void main(String args[])
     { 
     System.out.println("Hello"); 
     } 
    }
    最好加个public当然楼上说的也要改正
      

  3.   

    同意一楼
    应该楼主编译另一个叫做hello.java的文件时报的错。
    试试javac Hello.java
      

  4.   

    一个类在定义时可以使用public加以修饰,一个.java文件中可以定义数个类,但只能有一个被声明为public,而这个文件名就要与这个声明为public的类名一致,程序从这个类入口(意思是必须main()方法必须也在这个类里,对于这点我不确定,刚才写了一个程序我觉的是这样,大家说我的说法正确吗?)。class A
    {
      public static void main(String args[] )
        {
            System.out.println("能行吗?");
        }
    }
    public class B
    {
      public B()
        {
          
        }
      
       
    }
    就是以B.java文件保存也报错。看来main()方法也要放在这个类里。对此,求个解释,JAVA学习中!
      

  5.   

    谢谢各位的回复。我先来解决两个问题:
    1 javac Hello.java 、javac hello.java 是等效的,因为编译时,是编译一个文件,文件名是
      不区别大小写的。所以这种错误我没有犯。再说同样文件名在一个文件夹下面不可能有两个。
    2 类文件保存时候,名字似乎也不是强性的,只要能编译出类文件来,就可以。只是如果保存文件名和类文件不一致,反而我们容易犯错误。public class Hello

     public static void main(String args[])
     { 
     System.out.println("Hello"); 
     } 
    }比如这个你保存文件名为a.java应该也能编译成功。。javac a.java 
    但是运行时候肯定不能用java a 因为你生产的类文件应该是 Hello.class 所以应该是java Hello而且大小写敏感!!!我那个问题是系统问题,我多次安装删除sdk文件了,只有在个别java编程工具能通过,而直接javac却失败,估计是那些工具参数起了作用。多谢各位!!!
      

  6.   

    5楼的,文件中有多个类时,main()方法要放在public声明的类里.
    文件名最好取成同类名一样(大小写)虽说有时一个文件中只包含一个类时不取成类名也能编译通过(可能是JDK版本的问题,或是BUG吧,但确实存在该情况,不过最好不要这样),但用javac命令编译时输入的文件名不需要区分大小写,当然,这是在windows系统下.不过在用java命令执行class字节码文件时必须使用同类名一致.
      

  7.   

    跟楼主开个贴(与楼主问题相似):请教下大家
    public class hello {
    public static void main(String[] args){
    String line ="hello world,这是第一个java小程序";
    System.out.print(line);
    }
    }
    代码是这样的
    为什么,我在 c:\j>javac hello.java
                 c:\j>
    没有出现结果呢
    环境变量是: 
    path  C:\Program Files\Java\jdk1.6.0\bin
    CLASS_PATH   .;C:\Program Files\Java\jdk1.6.0\lib\dt.jar;C:\Program Files\Java\jdk1.6.0\lib\tools.jar
     class_phth后面必须跟这两个路径吗?