//这是Protetion.java文件
package p1;
public class Protetion
{
       int n=1;
       private int n_pri=2;
       protected int n_pro=3;
       public int n_pub=4;  public Protetion()
 {  
    System.out.println("Hello World!");
    System.out.println("n="+n);
    System.out.println("n_pri"+n_pri);
    System.out.println("n_pro"+n_pro);
    System.out.println("n_pub"+n_pub);
    }
}
//这是Derived.java文件
package p1;
 public class  Derived extends Protetion
{
  Derived()
{
 System.out.println("Hello World!");
         System.out.println("n="+n);
 System.out.println("n_pro="+n_pro);
 System.out.println("n_pub="+n_pub);
}
}
//这是Samepackage.java文件
package p1;
public class Samepackage{
Samepackage(){
ja p=new  ja();
     System.out.println(" Same package ");
     System.out.println("  n= "+p.n);
 
//System.out.println("n="+n);
//System.out.println("n_pri"+p.n_pri);
System.out.println("n_pro"+p.n_pro);
System.out.println("n_pub"+p.n_pub);

}
//这是包的测试文件Demo.java
package p1;
public class Demo  
{
public static void main(String[] args) 
{
ja ob1=new ja();
    Derived ob2=new  Derived();
    Samepackage ob3=new Samepackage();
 
}
}
这几个文件同放在一个p1的包中,
编译Protetion.java文件时能通过但是我编译其他文件的时候就提示找不到Protetion这个类为什么呢?
哪位仁人志士能来帮帮在下啊?

解决方案 »

  1.   

    把Protetion这个类加到环境变量里试一试
      

  2.   

    1。把所有文件放在目录pl下
    2。javac -classpath 包文件所在目录  要编译的文件
      

  3.   

    //这是Protetion.java文件
    package p1;
    public class Protetion
    {
           int n=1;
           private int n_pri=2;
           protected int n_pro=3;
           public int n_pub=4;  public Protetion()
     {  
        System.out.println("base contructer!");
        System.out.println("n="+n);
        System.out.println("n_pri"+n_pri);
        System.out.println("n_pro"+n_pro);
        System.out.println("n_pub"+n_pub);
        }
    }
    //这是Derived.java文件
    package p1;
     public class  Derived extends Protetion
    {
      Derived()
    {
     System.out.println("derive contructer!");
             System.out.println("n="+n);
     System.out.println("n_pro="+n_pro);
     System.out.println("n_pub="+n_pub);
    }
    }
    //这是Samepackage.java文件
    package p1;
    public class Samepackage{
    Samepackage(){
    Protetion p=new  Protetion();
         System.out.println(" Same package ");
         System.out.println("  n= "+p.n);
     
    //System.out.println("n="+n);
    //System.out.println("n_pri"+p.n_pri);
    System.out.println("n_pro"+p.n_pro);
    System.out.println("n_pub"+p.n_pub);

    }
    //这是包的测试文件Demo.java
    package p1;
    public class Demo  
    {
    public static void main(String[] args) 
    {
    Protetion ob1=new Protetion();
        Derived ob2=new  Derived();
        Samepackage ob3=new Samepackage();
     
    }
    }
    这几个文件同放在一个p1的包中,
    编译Protetion.java文件时能通过但是我编译其他文件的时候就提示找不到Protetion这个类为什么呢?
    哪位仁人志士能来帮帮在下啊?
      

  4.   

    public class  Derived extends Protetion
    {
      Derived()
    {
     System.out.println("derive contructer!");
             System.out.println("n="+n);
     System.out.println("n_pro="+n_pro);
     System.out.println("n_pub="+n_pub);你的构造函数不是public,无法用来构造对象
      

  5.   

    先把四个文件拷贝至p1目录下,
    然后在命令行方式下进入p1的父目录,
    运行javac p1\Demo.java
    成功后输入
    java p1.Demo
    显示出结果!
      

  6.   

    Classpath变量:.;c:\j2sdk1.4.2\lib\dt.jar;C:\j2sdk1.4.2\lib\tools.jar
    详细错误信息发过来看看!
      

  7.   

    Exception int thread"main"java.java.lang.NoclassDeFoundError:p1/Demo
    我编译后出现这样的提示是什么意思呢?
      

  8.   

    你输入出错,应该是
    javac p1\Demo.java
      

  9.   

    这个问题的主要根本原因就是在运行时这个类根本就没有被找到。
    不是打包就是classpath的问题
      

  10.   

    那我该怎么解决这个问题呢?
    编译都通过了啊,就是运行的时候出现这种提示啊
    Exception  int  thread  "main  " java.lang.NoclassDeFoundError:p1/Demo
      

  11.   

    不会吧。我试过了。没问题啊。
    你编译和运行时,都要在P1的上一级目录,不要跑到P1目录下。
    编译:javac p1\Demo.java
    运行:java p1.Demo
      

  12.   

    Exception int thread "main" java.lang.NoclassDeFoundError:p1\Demo
    提示这样的错误是什么原因呢?
    是不是我的这个lang包没有啊或是??
    你们的都能编译通过我的就是运行时不行的啊
    就是按照上面的所有的方法啊
      

  13.   

    问题在于javac 和java这两个命令的参数,建议你详细看看它们的帮助。
    我估计你现在的问题是你没有手工创建p1文件夹并把这些源文件放在其中。
    如果是这样,我假设你的所有java文件放在从c:\csdn下,那么你应该这么做:
    进入ms-dos,
    进入c:\csdn目录
    javac -d . *.java
    java p1.Demo
    ok?
    Exception int thread "main" java.lang.NoclassDeFoundError:p1\Demo
    这个异常是初学者的老朋友,不要急。意思是虚拟机的类装载器没有找到这个定义的类p1.Demo
    我们知道java使用目录结构来表示包结构的,你看看在csdn目录下有没有一个p1文件夹包含,其中Demo.class就知道了
      

  14.   

    webprint是一个基于表格的页面打印解决方案.先将要打印的数据及样式组织到一个HTML的TABLE元素中, 然后将这个TABLE元素传给webprint,实现分页打印预览,出打印对话框打印和直接打印。eform表单设计器是一个在IE浏览器中可视化的设计软件界面的工具。无论是输入界面还是报表界面,无论是简单的输入查询还是复杂的逻辑处理。都可以由eform设计出来。 
     
         eform表单设计器适用于网上OA系统的自定义表单模块,工作流系统的自定义表单模块,信息管理系统方面的软件开发项目等等。 
    eprint自定义打印是一个页面套打工具.它直接在IE浏览器中可视化的设计各种复杂的打印模版,
    能够解决在IE浏览器中打印各种复杂的中国式报表及票据。详见: http://218.30.103.110:8080/eprint/index.htm
    方成eform表单设计器,纯BS结构.100%开放源码.可以在 http://218.30.103.110:8080/eform/index.html 在线试用.