关于JAVA自动导入默认包的问题

ifosn 2008-04-04 02:17:57
书上说JAVA虚拟机在运行时会自动导入默认包 但我实验了下载吗没有自动导入?

我在当前目录建立cn.XXX包,即当前目录结构为 当前目录里包含 cn\XXX目录

我再在当前目录建立一个属于默认包的文件(没给他指定是哪个包)。
用cn.XXX里的类调用默认包里的文件,编译出错,说找不到默认包里的那个类。这是为什么? 不是自动导入了默认包吗?那在cn.XXX包中的类应该就可以用这个默认包里的类啊?
...全文
2254 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wrjfthh 2008-08-21
  • 打赏
  • 举报
回复
楼主的问题是没有设置classpath .;
也就是当前目录,所以JRE在搜索的时候找不到你的地址,所以报错
wrjfthh 2008-08-21
  • 打赏
  • 举报
回复
lang包下面的子包需要自己导入,呵呵
比如
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

而lang包下面的不要导

java.lang.String;
w111222j 2008-04-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yinyuan1987 的回复:]
楼上说的对,java只默认自动帮你导入java.lang包,你要手工添加import语句导入!
[/Quote]

支持楼上的

用Eclips的时候ctr+shift+o自动导包
  • 打赏
  • 举报
回复
你的classpath里面要加入 '.'
这样就能找到默认包里的类了,JAVA编程思想里面说的。。。

  • 打赏
  • 举报
回复
楼上说的对,java只默认自动帮你导入java.lang包,你要手工添加import语句导入!
老紫竹 2008-04-04
  • 打赏
  • 举报
回复
默认包,你可以认为只有 java.lang.*

其它的都不是默认的!包括你自己写的没有package声明的也一样。

所以,一旦你书写了没有 package的类,那么在别的package里面想访问他们可是....

SORRY,我还不知道怎么访问他们呢?哈哈!!!因为无法import,而不import更找不到他们。
枫叶rain 2008-04-04
  • 打赏
  • 举报
回复
你应该弄明白java的默认包是什么,是怎么导入的
一般是运行时,java虚拟机通过设置的classpath找到lib下的包
你想让它自动找到,就加到classpath中就可以了
云上飞翔 2008-04-04
  • 打赏
  • 举报
回复
还要去写属于匿名包的类。真正做项目代码时,每一个类都要属于某一个包。
ifosn 2008-04-04
  • 打赏
  • 举报
回复
但不是说如果一个类声明时不加package 就是在默认包里面吗?
[Quote=引用 2 楼 java2000_net 的回复:]
默认包,你可以认为只有 java.lang.*

其它的都不是默认的!包括你自己写的没有package声明的也一样。

所以,一旦你书写了没有 package的类,那么在别的package里面想访问他们可是....

SORRY,我还不知道怎么访问他们呢?哈哈!!!因为无法import,而不import更找不到他们。
[/Quote]
colinboy 2008-04-04
  • 打赏
  • 举报
回复
没设置classpath吧

62,623

社区成员

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

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