您的位置:程序门 -> java -> j2se / 基础类



新手请教,今天突然无法编译java文件了。


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


新手请教,今天突然无法编译java文件了。
发表于:2007-05-02 17:35:01 楼主
源码如下:
===========================================================================
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   错误

如此简单的代码,我实在找不出哪里错了,而且搞了一下午,估计是环境有问题,但是还是搞不定。。。
请教各位,多谢!!!
发表于:2007-05-02 18:35:031楼 得分:0
c:\java\myjava> javac   hello.java这句,应该是javac   hello.java,文件名和类名字大小写一致。试试看!
发表于:2007-05-02 18:59:022楼 得分:0
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当然楼上说的也要改正
发表于:2007-05-02 19:04:313楼 得分:0
同意一楼
应该楼主编译另一个叫做hello.java的文件时报的错。
试试javac   hello.java


发表于:2007-05-02 19:08:264楼 得分:0
javac   hello.java
发表于:2007-05-02 23:22:325楼 得分:0
一个类在定义时可以使用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学习中!
发表于:2007-05-02 23:26:266楼 得分:0
一楼是对滴!但好久没用这个编译了!呵呵!
发表于:2007-05-03 00:28:467楼 得分:0
谢谢各位的回复。我先来解决两个问题:
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却失败,估计是那些工具参数起了作用。多谢各位!!!
发表于:2007-05-03 00:36:118楼 得分:0
5楼的,文件中有多个类时,main()方法要放在public声明的类里.
文件名最好取成同类名一样(大小写)虽说有时一个文件中只包含一个类时不取成类名也能编译通过(可能是jdk版本的问题,或是bug吧,但确实存在该情况,不过最好不要这样),但用javac命令编译时输入的文件名不需要区分大小写,当然,这是在windows系统下.不过在用java命令执行class字节码文件时必须使用同类名一致.
发表于:2007-05-03 00:59:269楼 得分:0
该回复于2007-12-28 11:16:37被管理员或版主删除
发表于:2007-06-11 10:34:4510楼 得分:0
跟楼主开个贴(与楼主问题相似):请教下大家
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后面必须跟这两个路径吗?


快速检索

最新资讯
热门点击