問題描述:
編寫簡單的Hello.java程序,在cmd命令行下用javac Hello.java命令編譯沒有問題,可以生成Hello.class文件。但輸入java Hello命令后(文件目錄和命令目錄一致),提示錯誤:“找不到或無法加載主類”。
解決思路:
從網上查找原因和解決方法,有提到環境變量classpath設置問題,但多次嘗試問題依舊沒有解決。然后使用java -cp %classpath; Hello執行,結果正確。
使用echo
%classpath% 或者 set classpath,查看classpath環境變量值,發現只是顯示當前用戶變量中的classpath值,而不是系統變量中的classpath值。
解決方法1:
將系統變量中的classpath值添加到用戶變量中,然后執行java Hello,成功!使用java -cp %classpath; Hello執行,仍正確!
解決方法2:
在系統變量中的classpath值中添加 .; 表示顯示當前路勁,如下圖;
可能需要重啟下cmd

上網查找用戶變量與系統變量的區別,
用戶變量是當前用戶使用,你用其它用戶登陸,這個環境變量就不起作用了(私有)。而
系統變量,是對所有用戶都可使用的(公有)。
但還不太清楚為什么出現這種情況?