关于Package的一个简单疑问。

xuchunqiang 2003-10-15 03:01:11
文件A.java, B.java保存在同一个目录下。如下:

//:B.java
package e;

public class B {
public static void rint(String s) {
System.out.print(s);
}
}///:~

//:A.java 要调用类B。
import e.*; /////▲

public class A {
public static void main(String[] args) {
//new B();
B b = new B();
b.rint("dfdf");
}
} ///:~

问题出在▲处,编译时出现如下错误:
“D:\jdk1.3\bin\A.java:6: 不能解析符号
符号:构造方法 B ()
位置:类 in B
B b = new B();”

如果我将▲处改为
import e.B;
或者B b = new B();改成e.B b = new e.B();就可以了,不知道是什么原因,请指点!
...全文
66 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuchuan 2003-10-16
  • 打赏
  • 举报
回复
同一目录下就不用倒入包文件了吧?
不然看上去很乱。
xuchunqiang 2003-10-16
  • 打赏
  • 举报
回复
大家给出那么多解决方法我很感激,但我只是觉得奇怪为什么那样做不行(如题)?
alienbat 2003-10-15
  • 打赏
  • 举报
回复
这样写试试看
import e.B;
yao_xh 2003-10-15
  • 打赏
  • 举报
回复
把b.java写成:

package e; ///yaoxh加的
public class A {
public static void main(String[] args) {
B b = new B();
b.rint("dfdf");
}
}
或把classpath要加“.”
set classpath=%classpath%. ;
fft123 2003-10-15
  • 打赏
  • 举报
回复
你是怎么编译a.java的?
如果javac没加-d开关的话,是在当前目录生成的class文件
如果你拷贝到package相应目录后,没有删掉当前目录里的class文件和java文件(两个都要删,删之前做备份)
就会报这样的错
classpath要加“.”
class文件不用拷到jdk1.3.1\lib目录下
xuchunqiang 2003-10-15
  • 打赏
  • 举报
回复
我根据大家所说的进行的尝试:
①将B.java改成CBAB.java——我相信我的机上不会有第二个这么变态的名称了;
②将A和B都拷贝到jdk1.3.1\lib的目录下了——相信JAVA绝对可以找得到它了吧。

但以上两个方法都不行。要不谁有兴趣的在自己机上试一下。先行谢过!
tomcatjava 2003-10-15
  • 打赏
  • 举报
回复
把package e放到CLASSPATH里试试!
fft123 2003-10-15
  • 打赏
  • 举报
回复
在你的classpath搜索路径上,有多于一个的B.java或B.class文件
检查一下,删掉后,只留你import的那一个路径里的class文件就可以了
neutrino2003 2003-10-15
  • 打赏
  • 举报
回复
难道你的类路径里还有其他的名称叫B的类?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧