假设在子目录c:\javatest\ex\ch04下建立如下文件:
//A.java
package ex.ch04;
public class A
{
  public A() { }
}
然后,在子目录c:\javatest\ex\ch04\main下建立如下文件:
     //B.java
     package ex.ch04.main;
     import ex.ch04.*;
     class B
     {
       public static void main(String args[])
       {
         A a=new A();
       }
     }编译B.java为什么会出现 “找不到符号”的信息?
小弟刚入门,求高手解答。

解决方案 »

  1.   

    如果你是在命令行编译的话 可以暂时改一下classpath:
    set classpath=%classpath%;c:\javatest  (只在当前命令行窗口有效)然后你就可以到main下javac b.java洗洗睡吧 蛋疼...
      

  2.   

    如果你是在命令行编译的话 可以暂时改一下classpath:
    set classpath=%classpath%;c:\javatest  (只在当前命令行窗口有效)然后你就可以到main下javac b.java洗洗睡吧 蛋疼...
      

  3.   

    如果你是在命令行编译的话 可以暂时改一下classpath:
    set classpath=%classpath%;c:\javatest  (只在当前命令行窗口有效)然后到main下javac b.java洗洗睡吧 蛋疼...
     
      

  4.   

    环境变量classpath下面把路径添加上去。也就是c:\javatest\ex\,注意添加的时候在前一句前面添加英文下半角符号“;”跟c:\javatest\ex\分隔开。然后执行你的B程序就可以了
      

  5.   

     还是不行,还是原来一样找不到符号:  B.java:6:找不到符号,
                                                符号:类A
                                                位置:类javatest.ex.main.B
                                                A a=new A();
                                                2错误
      

  6.   

    楼主你的class B 不加public吗?
      

  7.   

    楼主先编译a,在编译b。确认a.class文件存在于ex/ch04(两个文件夹) 中。
      

  8.   

    ch04文件夹有A.class,我设置好环境变量c:\javatest\ex\ch04\main还是找不到符号,再求高手指点
      

  9.   

    你应该设置两个环境变量c:/javatest/ex/ch04和c:/javatest/ex/ch04/main
      

  10.   

    用eclipse吧,这个工具方便多了。
      

  11.   


    http://img.my.csdn.net/uploads/201204/03/1333423122_2062.jpg
      

  12.   

    我来回答下吧,虽然是新手,我这几天也在纠结这些东西。第一,你B.java里面有导入包,则必须将包的路径设置到classpath里面,在环境变量里面设置吧。添加这个路径进去,记住必须加分号,c:\javatest\ex\ch04
    第二,然后在编译A.java
    第三,最后编译B.java,再执行B,此时因为B类也进行了打包,执行B的时候记得加上包名,既
    java ex.ch04.main.B
      

  13.   

    补充一下,不用先编译A.java  直接编译B.java
      

  14.   

    好像是mai方法要写一以public 修饰的类里,你的第二个class B 没有public 你的mai 方法应该放在A里面。