解决方案 »

  1.   

    NoClassDefFoundError:Test1  没有class文件,请编译
      

  2.   

    嗯,如果是dos编的话 是需要javac编译的
      

  3.   

    如果去掉Test1的package语句  把它放在默认包中就可以正确运行 但不能访问protected方法。
    我想做的其实就是测试一下,在同一个包中的两个类,其中一个可以访问另一个的protected方法
      

  4.   

    编译了 .class文件就在同一个目录下
      

  5.   

    把classpath加为这个路径再试试
      

  6.   

    唉 都加了 已经把包前面的那条路径添加到classpath了
      

  7.   

    哥,你确定?我其他都可以正确运行的,包外访问可以,你确定你在Test1这个类中使用了package语句?
      

  8.   

    一个包中的类最多只能有一个public class
    把第一个类的public关键字去掉应该可以的
      

  9.   

    啊 有这种事 我试试
    ,,,,,,你用命令行编译带包名的java要用-d参数再指定路径生成class文件,再包名.类名运行程序
      

  10.   

    啊这到底是为什么 为什么我这里一直不行 反倒是不同包之间可以访问到public的方法,同一个包中连类都找不到
      

  11.   

    啊 有这种事 我试试
    ,,,,,,你用命令行编译带包名的java要用-d参数再指定路径生成class文件,再包名.类名运行程序
    具体应该怎么写 给个范例
      

  12.   


    javac ****.java -d ./
    java ****.****
      

  13.   

    带package语句的类运行时需要在包名的上一层目录中运行: java packages.testpackage.Test1 才是正确的,估计你在Test1.java所在目录直接执行 java Test1,就会出现你说的错误。
      

  14.   

    可以了,这么做确实是正确的,而且只能在classpath里面设置的那个路径下运行,再往里进一层都不行。
    能不能告诉我是为什么?
    还有,问一个比较傻的问题,用package语句放在同一个包里的两个类的.class文件必须在同一目录下吧?