我把下面两个文件(一个是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 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);
}
}
解决方案 »
- 新手求解,感激不尽。
- JFrame中setEnabled的问题,实在无法解决
- 测测你对java内存的理解
- java多态问题
- 如何实现类自身从文件初始化
- JAVA调用Windows CMD的一个问题高手得满分
- 100分!求助用jai Advanced Imaging API 解决.tif 文件转jpg文件的问题,如果分不够可以再加,在线等!
- 跨求!!!!验证码代码问题,在windows2000能显示,在linux下不能显示出来
- 谁知道 jsp web 编程指南的电子书籍在哪下载!!!急!!!
- 请看我这个String[]的错误
- 求一正则表达式
- 就我这样的JAVA初学者,要不要走下去?大家进来给句实话
看好了,将你两段程序像下面一样改一下:
Time1.java中将package com.deitel.jhtp3.ch08 复制(记住是复制)到TimeTest.java文件的最上方,
如果你是用记事本写的,需要将这两个文件放在:
x:\com\deitel\jhtp3\ch08这个目录下 再进行编译
若不想这么麻烦,将Time1.java中的package全删掉,再用你的方法编译
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
相同!