我把下面两个文件(一个是Time1.java,另一个是TimeTest.java)放到D:\j2sdk\j2sdk1.4.2\jre\classes这个目录下,然后用javac -classpath D:\j2sdk\j2sdk1.4.2\jre\classes Time1.java TimeTest.java 编译 会出现"error:cannot read:Time1.java
   1 error"                     这样的报错。。如果用javac -d D:\j2sdk\j2sdk1.4.2\jre\classes Time1.java TimeTest.java也会出现一样的报错。  即使把要编译的两个文件换成*.java来表示还是会报同样的错。。哪位高手帮帮我啊,这究竟错在什么地方??先谢谢了package com.deitel.jhtp3.ch08;
import java.text.DecimalFormat;     
public class Time1 extends Object{
   private int hour;
   private int minute;
   private int second;  public Time1()
   {
     setTime(0,0,0);
   }  public void setTime(int h, int m, int s)
    {
       hour=( (h>=0&&h<24)?h:0 );
       minute=( (m>=0&&m<60)?m:0 );
       second=( (s>=0&&s<60)?s:0 );
    }  public String toUniversalString()
    {
      DecimalFormat twoDigits=new DecimalFormat("00");      return twoDigits.format(hour)+":"+
             twoDigits.format(minute)+":"+
             twoDigits.format(second);
    }  public String toString()
   {
      DecimalFormat twoDigits = new DecimalFormat( "00" );      return( (hour==12||hour==0) ? 12 : hour%12 ) + ":" + twoDigits.format(minute)                            + ":" + twoDigits.format(second)+(hour<12 ? " AM" : " PM");
   }
}import javax.swing.JOptionPane;
import com.deitel.jhtp3.ch08.Time1;public class TimeTest{
    public static void main(String args[])
     {
        Time1 t=new Time1();        t.setTime(13,27,06);
        String output=
           "Universal time is: "+t.toUniversalString()+
           "\nStandard time is: "+t.toString();      JOptionPane.showMessageDialog(null,output,"Packaging Class Timel for Reuse",
                                    JOptionPane.INFORMATION_MESSAGE);       System.exit(0);
   }
}

解决方案 »

  1.   

    哪个老师教你这样进行编译的?自创的吧?
    看好了,将你两段程序像下面一样改一下:
    Time1.java中将package com.deitel.jhtp3.ch08 复制(记住是复制)到TimeTest.java文件的最上方,
    如果你是用记事本写的,需要将这两个文件放在:
    x:\com\deitel\jhtp3\ch08这个目录下 再进行编译
    若不想这么麻烦,将Time1.java中的package全删掉,再用你的方法编译
      

  2.   

    再给你加道点心:
    java文件中,需要有3个地方注意:
    package包声明后边的需要有相应的物理目录存在才行! java中的包,就代表项目文件下的实际的目录,比如你的com.deitel.jhtp3.ch08,你就一定要保证你写的带有这个包的java文件存在于com\deitel\jhtp3\ch08这个目录结构下!无package包声明的java文件则无此限制!*.java文件的名称,一定要与这个文件里面定义的主类的类名要对应!一般来说是包含
    public static void main(String[] args)这个方法的类!假如你写的类不包含这个方法,一般来说是带public关键字的那个类的名称!比如:你的文件名称叫Hello.java, 那么你在这个文件里就不能这样来定义:
    public class Hello
    {
    }public class HelloTest
    {
    }简单说就是一个java文件中仅能存在一个以public class定义的类! 而且类名称必须和XXX.java
    相同!