Topic: 求教: 一个很奇怪的CLASSPATH的问题

  Print this page

1.求教: 一个很奇怪的CLASSPATH的问题 Copy to clipboard
Posted by: hh205
Posted on: 2005-10-24 01:31

我机器上的CLASSPATH设置为: CLASSPATH=d:\myjava;. path=c:\j2sdk1.4.2_08\bin;.......

文件 PackagedClass.java 代码为:
package c05.local;
public class PackagedClass {
  
public PackagedClass() {
  System.out.println("Creating a packaged class.");
  }  
}

编译通过,在d:\myjava目录下生成子目录 c05\local 和 文件PackagedClass.class;

文件 Foreign.java 代码为:
import c05.local.*;
//import c05.local.PackagedClass;
public class Foreign{
public static void main(String [] args){
PackagedClass pc=new PackagedClass();
}
}
编译时报错,显示:
Foreign.java:6:cannot access PackagedClass
bad class file: d:\myjava\PackagedClass.java
file does not contain class PackagedClass
Please remove or made sure it appears in the correct subdirectory of the classpath.
PackagedClass pc=new PackagedClass():
^
1 error

但如果我把第二行注释去掉,则编译通过,运行正常。
真的很困惑,请各位为高手指点!
谢过!!!

2.Re:求教: 一个很奇怪的CLASSPATH的问题 [Re: hh205] Copy to clipboard
Posted by: Java_Programer
Posted on: 2005-10-29 20:26

需要具体调用类的

3.Re:求教: 一个很奇怪的CLASSPATH的问题 [Re: hh205] Copy to clipboard
Posted by: 北极熊
Posted on: 2005-10-30 11:56

请问如何发贴?

4.Re:求教: 一个很奇怪的CLASSPATH的问题 [Re: hh205] Copy to clipboard
Posted by: xfhu
Posted on: 2005-11-02 12:48

我运行了你的程序.的确是这样的.
用:
import c05.local.*;
不行,
用:
import c05.local.PackagedClass;
就可以了.
请问这两者有什么区别.

期待高人来指点.

5.Re:求教: 一个很奇怪的CLASSPATH的问题 [Re: hh205] Copy to clipboard
Posted by: truthawp
Posted on: 2005-11-04 18:19

这不一样,import c05.local.*只是引用了local里的东西,而import c05.local.PackagedClass才是引用了PackagedClass里的东西(不知道是不是这样表达)
明白的话,就会为什么有些程序里有
import java.awt.*;
import java.awt.event.*;
这样两句了,他们的作用是不一样的
个人意见,仅供参考,如有疏忽,不吝赐教 Smile

6.Re:求教: 一个很奇怪的CLASSPATH的问题 [Re: hh205] Copy to clipboard
Posted by: bukaoyan
Posted on: 2005-11-05 11:20

这个问题我也很困惑
明明是行的通的却不行?
同样有事我调用文件输入流是指定文件名时
就在当前目录下但总是报错,找不到,结果我列出完整的包名加文件名就可以了
但是按理它应该先直接在当前目录下找啊?
况且thinking in java里作者也是这么写的代码
我不知道我的问题在哪里?
环境变量我设好了应该!

7.Re:求教: 一个很奇怪的CLASSPATH的问题 [Re: hh205] Copy to clipboard
Posted by: lxc20082008
Posted on: 2005-11-05 21:18

类路径设错了,上边那位说两者是不同的是胡说,好好反省一下自己,对类路径的设置请查阅张孝祥的视频教学

8.Re:求教: 一个很奇怪的CLASSPATH的问题 [Re: hh205] Copy to clipboard
Posted by: blueman
Posted on: 2005-11-05 21:56

不要用系统的CLASSPATH,你编译的时候指定CLASSPATH多方便!
javac -classpath c:\
java -classpath c:\

9.Re:求教: 一个很奇怪的CLASSPATH的问题 [Re: xfhu] Copy to clipboard
Posted by: Infinite
Posted on: 2005-11-06 03:23

*只能包含当前目录下的所有类不能包含子目录中的类。
============================
xfhu wrote:
我运行了你的程序.的确是这样的.
用:
import c05.local.*;
不行,
用:
import c05.local.PackagedClass;
就可以了.
请问这两者有什么区别.

期待高人来指点.

10.Re:求教: 一个很奇怪的CLASSPATH的问题 [Re: hh205] Copy to clipboard
Posted by: ybyt530
Posted on: 2005-11-06 13:55

我不大懂,我也试过你的代码了.解释错了别砸我!我菜鸟级
我编译PackagedeClass类时没生成目录c05/local啊,我把CLASSPATH改成和你一样了.还是不行.然后我自己建了个c05/local,然后把PackagedeClass.class移进去,在编译运行Foreign类就没问题了.

我也想问问,为什么我不能在运编译PackagedClass时生成c05/local目录并在该目录下生成PackagedClass.class?


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923