一个JAVA问题
登录 | 论坛导航 -> 华新鲜事 -> 求学狮城 | 本帖共有 9 楼,分 1 页, 当前显示第 1 页 : 本帖树形列表 : 刷新 : 返回上一页
<<始页  [1]  末页>>
作者:不对啊 (等级:1 - 微不足道,发帖:82) 发表:2006-06-20 14:29:54  楼主  关注此帖评分:
一个JAVA问题
准备建立一个package 叫作 Shapes

在这个 package里面, 先写了个super class叫BasicShape:

package Shapes;
public class BasicShape{
...
}


然后在同样的directory 下, 写了个叫Shape2D的class继承BasicShape:

package BasicShape;
public class Shape2D extends BasicShape{
...
}

但当我compile Shape2D.java的时候, 说找不到class BasicShape,

不知道是什么原因, 谢谢解答
Put your OWN COOL signature here!
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:洋葱头 (等级:7 - 出类拔萃,发帖:1031) 发表:2006-06-20 18:17:14  2楼 评分:
看来是engine的
package Shapes;
public class BasicShape{
...
}


package BasicShape;
public class Shape2D extends BasicShape{
...
}

你把BasicShape放到了Shapes package里面, 又把Shape2D放到了 BasicShape package里面.
这样Shape2D根本看不到BasicShape的存在...
你把package BasicShape换成 package Shapes 或者干脆2个package都不要了, 就没问题了
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:不对啊 (等级:1 - 微不足道,发帖:82) 发表:2006-06-21 10:18:30  3楼 评分:
不好意思, 问题问错了。。
准备建立一个package 叫作 Shapes

在这个 package里面, 先写了个super class叫BasicShape:

package Shapes;
public class BasicShape{
...
}


然后在同样的directory 下, 写了个叫Shape2D的class继承BasicShape:

package Shapes; // 原来的post里写成package BasicShape了, 笔误
public class Shape2D extends BasicShape{
...
}

但当我compile Shape2D.java的时候, 说找不到class BasicShape,

不知道是什么原因, 谢谢解答
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:不对啊 (等级:1 - 微不足道,发帖:82) 发表:2006-06-21 10:18:52  4楼 评分:
不好意思, 问题问错了。。准备建立一个package 叫作 Shapes 在这个 package里面, 先写了个super class叫BasicShape: package Shapes; public class BasicShape{ ... } 然后在同样的directory 下, 写了个叫Shape2D的class继承BasicShape: package Shapes; // 原来的post里写成package BasicShape了, 笔误 public class Shape2D extends BasicShape{ ... } 但当我compile Shape2D.java的时候, 说找不到class BasicShape, 不知道是什么原因, 谢谢解答
跟下面洋葱头的
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:不对啊 (等级:1 - 微不足道,发帖:82) 发表:2006-06-21 10:21:55  5楼 评分:
不好意思, 问题问错了。。准备建立一个package 叫作 Shapes 在这个 package里面, 先写了个super class叫BasicShape: package Shapes; public class BasicShape{ ... } 然后在同样的directory 下, 写了个叫Shape2D的class继承BasicShape: package Shapes; // 原来的post里写成package BasicShape了, 笔误 public class Shape2D extends BasicShape{ ... } 但当我compile Shape2D.java的时候, 说找不到class BasicShape, 不知道是什么原因, 谢谢解答
jdk1.5.2_07
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:洋葱头 (等级:7 - 出类拔萃,发帖:1031) 发表:2006-06-21 14:53:01  6楼 评分:
不好意思, 问题问错了。。准备建立一个package 叫作 Shapes 在这个 package里面, 先写了个super class叫BasicShape: package Shapes; public class BasicShape{ ... } 然后在同样的directory 下, 写了个叫Shape2D的class继承BasicShape: package Shapes; // 原来的post里写成package BasicShape了, 笔误 public class Shape2D extends BasicShape{ ... } 但当我compile Shape2D.java的时候, 说找不到class BasicShape, 不知道是什么原因, 谢谢解答
--->
code这样写是没问题的. 而且我也用Jcreator complie了, 没有问题.

你的问题可能出在你没有先compile BasicShape.java就直接complie Shape2D.java 这样的话也会找不到BasicShape class

当你compile了BasicShape.java以后, 在这个directory下面应该又多出一个名字为Shapes的folder, 就是你的那个package Shapes
folder里面会有BasicShape.class. 这个时候你再compile Shape2D.java应该就好了
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:吴永铮 (等级:8 - 融会贯通,发帖:2078) 发表:2006-06-23 00:12:16  7楼 评分:
不好意思, 问题问错了。。准备建立一个package 叫作 Shapes 在这个 package里面, 先写了个super class叫BasicShape: package Shapes; public class BasicShape{ ... } 然后在同样的directory 下, 写了个叫Shape2D的class继承BasicShape: package Shapes; // 原来的post里写成package BasicShape了, 笔误 public class Shape2D extends BasicShape{ ... } 但当我compile Shape2D.java的时候, 说找不到class BasicShape, 不知道是什么原因, 谢谢解答
应该是目录的问题
应该把两个.java文件都放在Shapes的目录里。package的结构应该和文件目录结构一样。javac和java都应该在最上一级目录里执行,即Shapes的上一级目录。正确的结构应该是这样的:

C:\home>dir
Volume in drive C has no label.
Volume Serial Number is 43C1-842F

Directory of C:\home

06/23/2006 12:06 AM <DIR> .
06/23/2006 12:06 AM <DIR> ..
06/23/2006 12:06 AM <DIR> Shapes
0 File(s) 0 bytes
3 Dir(s) 32,119,504,896 bytes free

C:\home>dir Shapes
Volume in drive C has no label.
Volume Serial Number is 43C1-842F

Directory of C:\home\Shapes

06/23/2006 12:06 AM <DIR> .
06/23/2006 12:06 AM <DIR> ..
06/23/2006 12:08 AM 0 BasicShape.java
06/23/2006 12:08 AM 0 Shape2D.java
2 File(s) 0 bytes
2 Dir(s) 32,119,504,896 bytes free

C:\home>javac Shapes\Shape2D.java
......

C:\home>java Shapes.Shape2D
......

当你编译Shapes\Shape2D.java时,javac会去找Shapes\Shape2D.class,找不到的话就会自动去找Shapes\Shape2D.java来产生Shapes\Shape2D.class。你遇到的问题就是javac无法找到Shapes\Shape2D.java,因为你没有把Shape2D.java放在Shapes\里。
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:不对啊 (等级:1 - 微不足道,发帖:82) 发表:2006-06-24 00:15:14  8楼 评分:
应该是目录的问题应该把两个.java文件都放在Shapes的目录里。package的结构应该和文件目录结构一样。javac和java都应该在最上一级目录里执行,即Shapes的上一级目录。正确的结构应该是这样的: C:\home>dir Volume in drive C has no label. Volume Serial Number is 43C1-842F Directory of C:\home 06/23/2006 12:06 AM . 06/23/2006 12:06 AM .. 06/23/2006 12:06 AM Shapes 0 File(s) 0 bytes 3 Dir(s) 32,119,504,896 bytes free C:\home>dir Shapes Volume in drive C has no label. Volume Serial Number is 43C1-842F Directory of C:\home\Shapes 06/23/2006 12:06 AM . 06/23/2006 12:06 AM .. 06/23/2006 12:08 AM 0 BasicShape.java 06/23/2006 12:08 AM 0 Shape2D.java 2 File(s) 0 bytes 2 Dir(s) 32,119,504,896 bytes free C:\home>javac Shapes\Shape2D.java ...... C:\home>java Shapes.Shape2D ...... 当你编译Shapes\Shape2D.java时,javac会去找Shapes\Shape
厉害, 谢谢回答
我原来的CLASSPATH设置成 .
在同一个package下编译就找不到file, 后来我把CLASSPATH改成 .;.. 就行了
不过这种方法不如你的方法通用,比如多层package
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:不对啊 (等级:1 - 微不足道,发帖:82) 发表:2006-06-24 00:15:36  9楼 评分:
--->code这样写是没问题的. 而且我也用Jcreator complie了, 没有问题. 你的问题可能出在你没有先compile BasicShape.java就直接complie Shape2D.java 这样的话也会找不到BasicShape class 当你compile了BasicShape.java以后, 在这个directory下面应该又多出一个名字为Shapes的folder, 就是你的那个package Shapes folder里面会有BasicShape.class. 这个时候你再compile Shape2D.java应该就好了
谢谢解答
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
论坛导航 -> 华新鲜事 -> 求学狮城 | 返回上一页 | 本主题共有 9 篇文章,分 1 页, 当前显示第 1 页 | 回到顶部
<<始页  [1]  末页>>

请登录后回复:帐号   密码