包的问题!!!!!

YUNYUN_033 2007-04-16 08:36:58
package cn.mybole;
import com.mr.*;
class Test
{
public static void main(String[] args)
{
// System.out.print("package test!");
Test2 t2=new Test2();
}
}



package com.mr;
public class Test2{

}

我看了没错误啊,为什么会出现下面的这种错误呢
错误如下:

can not resolve symbol Test2 t2=new Test2()
...全文
311 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
no5element 2007-04-17
上面说的是我直接拷贝你的代码在根目录创建2个java 文件的情况目录结构为
root
│───Test.java
│───Test2.java

这个问题很久以前我也遇到过,所以比较注意,我就多说几句
如果你的目录结构本来如下

root
├───cn
│ └───mybole
│ └───Test.java
├───com
│ └───mr
│ └───Test2.java


首先你编译Test2.java 得到

root
├───cn
│ └───mybole
│ └───Test.java
├───com
│ └───mr
│ └───Test2.java
│ └───Test2.class

然后你到
root
├───cn
│ └───mybole
下编译Test.java
这时候你的classpath 就没有Test2.class,需要手动指定

如下编译

>root/cn/mybole: javac -classpath %classpath%;root Test.java

回复
no5element 2007-04-17
我用你的代码已经在控制台编译运行,遇到过你的问题:
编译Test2.java 后 在同目录生成了Test2.class文件,但没自动生成包路径,
这时候编译Test.java 会得到LZ的错误,
我手动创建了Test2的文件夹,并把Test2.class放进去,然后返回根目录编译Test.java 编译通过
回复
晨星 2007-04-16
你按da11393说的建立起相关的目录结构,不行么?
回复
YUNYUN_033 2007-04-16
我只是想验证一下不同包访问其他类的问题,好象还是不行,我的两个包都是在D盘根目录下的,我首先编译了Test2.java,可以的,但是编译到Test.java就会报错,can not resolve symbole.
还不知道我什么错误,我看是可以的,楼上的有的都编译通过了,
回复
da11393 2007-04-16
另外
public class Test2{

}

然后

Test2 t2=new Test2();

也是没有问题的
回复
da11393 2007-04-16
确保目录的安排如下:

root
├───cn
│ └───mybole
│ └───Test.class
├───com
│ └───mr
│ └───Test2.class

然后在root目录
java cn.mybole.Test

我试验通过
回复
qsrock 2007-04-16
Test2默认构造器是这样的:default Test2(){}所以Test2 t2=new Test2()就不可以了!~
回复
YUNYUN_033 2007-04-16
我照的(小小菜鸟)把类写出来了,可是还不行
回复
da11393 2007-04-16
import 自定义package 也可以 .* 这样的,没问题
回复
YUNYUN_033 2007-04-16
我已经先编译过Test2了,那个两个包都放在D盘根目录下的。
回复
Mark_MaoHUA 2007-04-16
cn.mybole同一个文件夹下有 com.mr;没?
回复
journeydj 2007-04-16
import com.mr.Test2能不能点出来... 还有 自定义包不可以用 .*的 只能一个一个 .出来的
回复
For_suzhen 2007-04-16
你的Test2是不是还没有编译成.class文件啊
回复
相关推荐
发帖
Java SE
创建于2007-09-28

6.2w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2007-04-16 08:36
社区公告
暂无公告