Java -- 错误: 找不到或无法加载主类 ReferenceCounting

  javac.exe是编译软件,java.exe是执行软件

  编写好代码如下:

package referencecounting;

//import static mindview.util.print.*;
class Shared{
    private int refcount = 0;
    private static long counter = 0;
    private final long id = counter++;
    public Shared(){
        //print("Creating " + this);
        System.out.println("Creating " + this);
    };
    public void addRef(){
        refcount++;
    }
    protected void dispose(){
        if( --refcount == 0 ){
            //print("Disposing " + this);
            System.out.println("Disposing " + this);
        }
    }
    public String toString(){
        return "Shared " + id;
    }    
}


class Composing{
    private Shared shared;
    private static long counter = 0;
    private final long id = counter++;
    public Composing( Shared shared ){
        System.out.println("Creating " + this);
        //print("Creating " + this);
        this.shared = shared;
        this.shared.addRef();
    };
    public void dispose(){
        System.out.println("disposing " + this);
        //print("disposing " + this);
        shared.dispose();
    }
    public String toString(){
        return "Composing " + id;
    }    
}


public class ReferenceCounting{
    public static void main(String[] args){
        Shared shared = new Shared();
        Composing[] composing = {
            new Composing(shared),
            new Composing(shared),
            new Composing(shared),
            new Composing(shared),
            new Composing(shared),
        };
        for(Composing c : composing){
            c.dispose();
        }
    }
}

  文件名为 ReferenceCounting.java ,该代码来自《java编程实现》,由于没有 mindview,jar 文件,因此键print注释掉,使用 System.out.println() 代替。

  将代码放置到文件夹 referencecounting 中,注意必须是小写(包名必须是小写);后按键 win+R ,键入cmd,回车,如下:

   

  输入:cd Desktop\referencecounting,回车;

  键入:javac ReferenceCounting.java,回车,在当前文件夹下生成 Composing.class、Shared.class、ReferenceCounting.class 文件。

   

  注意:此时如果键入:java ReferenceCounting,则会弹出错误提示:错误: 找不到或无法加载主类 ReferenceCounting,原因是我们在 ReferenceCounting.java 中增加了包名。 

 

 

  

  由于有添加包名:referencecounting ,因此后退一个文件夹,

  键入:cd ..

  键入:java referencecounting.ReferenceCounting

  输出:

   

 

posted @ 2021-03-10 16:16  我是废宝呀  阅读(93)  评论(0)    收藏  举报