初学Java就被难住了,Java怎么会是这样的? 问题二

JerryOne 2006-11-07 09:58:28
有关包的使用,以下是我写的生成包和导入包的两个类
一、生成包类
package parent.child;
public class Location
{
public void disp()
{
System.out.println("child子包中的Location类");
}
public Location()
{
disp();
}
}

二、导入类
//import parent.child.Location; // (1)
import parent.child.*;// (2) 用*号为什么出错?但Jbuilder2005却可以
public class ParentTest
{
public static void main(String args[])
{
Location loc = new Location();
//parent.child.Location loc = new parent.child.Location();
}
}

问题:
当使用(1)中的语句import parent.child.Location导入具体的类时,没有任何问题
当使用(2)中的语句import parent.child.*导入child所有类时,编译不能通过

困惑,请问这是什么原因,导入具体类都可以,导入所有类为什么会出错?

...全文
1532 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2006-11-10
  • 打赏
  • 举报
回复
我也不知道为什么如此,反正自从N年以前碰到你这样的问题之后,我都写package的,哪怕是个Test也要写成test.Test
chenyubo83 2006-11-10
  • 打赏
  • 举报
回复
路径没错吧
JerryOne 2006-11-10
  • 打赏
  • 举报
回复
結帖了,分數不夠,請包涵
Anndy_yang 2006-11-10
  • 打赏
  • 举报
回复
是不是編譯时沒有加参数呀!-d . 什麽的!
JerryOne 2006-11-09
  • 打赏
  • 举报
回复
To shine333(enihs)

谢谢,你说的是对的。

但是为什么要加一个package,即使随便一个也行
没有加package应该是在一个默认的包里面呀?
shine333 2006-11-09
  • 打赏
  • 举报
回复
因为你ParentTest没有写package,随便写一个

永远记住,所有class都必须写package
JerryOne 2006-11-09
  • 打赏
  • 举报
回复
TO zerofinish()
是不是jdk有问题~

看来只能这样认为了,不知道在你们的JDK的环境下会不会抱错呢?
我试过三台电脑都是同样的错误。


TO bush_80_0(西方迷)
命令行话,classpath是一个很烦人

classpath 我设了好几个都试过了 . parent.child ,绝对路径也设了
都没用
88324877 2006-11-08
  • 打赏
  • 举报
回复
导人*.class并不是个好习惯,你看的懂别人但是别人看的吃力,最好目标明确点导入确定的类,
人人为我,我为人人
88324877 2006-11-08
  • 打赏
  • 举报
回复
我用cmd试过也和楼主一样的问题,JCreator试了下也有上述问题,估计是BUG
Jbuilder整合了开发环境,可以通过
MagicianLiu 2006-11-08
  • 打赏
  • 举报
回复
在CMD下编译要注意路径问题。。
编译完应该时这个结构
/parent/child/Location.java
/parent/child/Location.class
/ParentTeset.java
/ParentTeset.class
JerryOne 2006-11-08
  • 打赏
  • 举报
回复
To windproof()
我用Jbuilder2006编译通过!没有问题!

我用Jbuilder2005也可以通過,沒有問題,
問題在於用命令行CMD編譯時,import.parent.child.Location;可以通過
import.parent.child.*;編譯時就出錯了

错误信息如下:
ParentTest.java:18: cannot access Location
bad class file: .\Location.java
file does not contain class Location
Please remove or make sure it appears in the correct subdirectory of the classpath.
Location loc = new Location();
^
1 error
JerryOne 2006-11-08
  • 打赏
  • 举报
回复
To zhushengbiao()
回答第2个,你可能没把*.java的文件也放入包内,因为只把类文件放入的话是无法用*号来导入所有

是這樣的嗎?那麼就是說.class和.java文件必須放在一起才能用import.*了?
直接導入類都可以,謝謝你的提醒
我再測試一下,
windproof 2006-11-08
  • 打赏
  • 举报
回复
我用Jbuilder2006编译通过!没有问题!
虎叔 2006-11-08
  • 打赏
  • 举报
回复
是环境问题
艾榕 2006-11-08
  • 打赏
  • 举报
回复
编译器问题
程序没有问题
如果程序有问题的话,那java中就没有办法用.*导入包了
JerryOne 2006-11-08
  • 打赏
  • 举报
回复
TO e_ville()
初学者用JB,实在不是好的选择!!因为有些问题是JB造成的,不是Java问题!

我用JB編譯沒有問題,現在是用CMD編譯的時候出了問題,把Loation.java也放在parent.child下面也可正常運行,就是放在當前目錄下面的時候javac ParentTest.java不能編譯通過。
但import parent.child.Location導入具體類卻有可以編譯


TO hl8189(9)

你那个在Eclipse中是不存在问题的,你的第一个加包,第二个为什么不加呢?你故意的还是忘记了?建议每个类的前面都要加上个包名,便于管理。

我還沒學會用Eclipse,現在基本用CMD,第一個加包,第二個我想從parent.child.*導入類

hl8189 2006-11-08
  • 打赏
  • 举报
回复
你那个在Eclipse中是不存在问题的,你的第一个加包,第二个为什么不加呢?你故意的还是忘记了?建议每个类的前面都要加上个包名,便于管理。
bush_80_0 2006-11-08
  • 打赏
  • 举报
回复
命令行话,classpath是一个很烦人
zerofinish 2006-11-08
  • 打赏
  • 举报
回复
是不是jdk有问题~
JerryOne 2006-11-08
  • 打赏
  • 举报
回复
MagicianLiu(魔术师·刘)
在CMD下编译要注意路径问题。。
编译完应该时这个结构
/parent/child/Location.java
/parent/child/Location.class
/ParentTeset.java
/ParentTeset.class

是的,照这样编译可以正常编译运行

TO 88324877(寂寞呆头鱼)
我用cmd试过也和楼主一样的问题,JCreator试了下也有上述问题,估计是BUG
Jbuilder整合了开发环境,可以通过

看来还是有人碰到类似的问题

TO 88324877(寂寞呆头鱼)
导人*.class并不是个好习惯,你看的懂别人但是别人看的吃力,最好目标明确点导入确定的类,
人人为我,我为人人

谢谢提醒,不过我刚学Java,可能为了省事,我看过其他人也用import.*导入类

加载更多回复(20)

62,616

社区成员

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

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