这几天真的狠抓狂,感觉java的有些方面很晦涩,路径就是个大问题。
编译的时候,直接在java文件路径下会出错,爬到上一级路径就没有错误;
运行的时候,直接在class文件的路径下会出错,爬到上一级路径,然后前面带包的名就没有错误;
包设置的时候,包是不是一定要设置不同级别;
类引用的时候,引用的类也要分级;
最头痛的类文件实际磁盘路径也和包发生关系。它们之间到底是什么关系,有什么样的联系,求解。

解决方案 »

  1.   

    可以考虑一下没有package的话,这个类在什么位置,加上包之后自然会添加几个文件夹,但是java的路径可以忽略这些文件夹,直接考虑当前路径为没有package的类的路径
    如果用ide的话,通常把src和class分为两个文件夹,当前路径就是工程文件夹
      

  2.   

    到了应用中WEB-INF下面的lib是jar路径,classes是类路径,没什么复杂的!
    不要把它看成一件多难的事,执行javac,java嫌费事,就整个IDE.
      

  3.   

    着是典型的包问题 不是路径问题  
    比如你有一个包a 在包a下面有一个类 叫c.class 类里面有package a;那么要运行这个类 就必须使用java a.c  而不能使用a\\c来运行
      

  4.   

    那确实,吓人,java基础没学好,仔细看看包那章就不会这样问了
      

  5.   

    晕,这也是问题呀,你用个IDE不就行了,把构建路径设置好就行了,如eclipse,把build path里的设置好就OK
      

  6.   

    当然,自己写ant脚本自动构建也挺好的
      

  7.   

    我也知道IDE方便,但是要学透知识就要从最基本的下手,关于包我手头的教材讲得太少,所以才会如此郁闷。如果程序在客户端安装后出了问题,没有IDE你怎么办。我的原则是首先匕首要用得好,然后再考虑飞机大炮。
      

  8.   

    最透彻的理解应该从classloader原理入手,实际上java会从哪几个位置读取.class文件或装载,看一下就明白了,当前路径是一个,classpath环境变量里设的那些路径也可以,在应用服务器环境下,它会用改造过的classloader自动从web-inf/lib目录的所有jar包中装载,以及从web-inf/classes目录装载,当然jdk安装目录下的lib目录也的,装载顺序……我也不是很明白,一般是jdk->当前目录->classpath  在web应用下好像web-inf/classes和web-inf/lib下的装载顺序会高一些……
      

  9.   

    你x.java的包名 com.a.b.c
    反映到路径就是com/a/b/c/x.class
      

  10.   

    一看楼主也是从别的转过来的不过JAVA的机制就是严整,都是剑习惯了就好