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
输出:


浙公网安备 33010602011771号