1. 程式人生 > >無法對含有多個.java(或.class)文檔的程序進行編譯(或解釋)

無法對含有多個.java(或.class)文檔的程序進行編譯(或解釋)

解決方案 rtu 多個 ali 後綴名 otto str 通配 pre

通常初學者會出現這樣的問題:無法對含有多個.java(或.class)文檔的程序進行編譯(或解釋)。

root@yogile-VirtualBox:/alive/string# javac work/Circular.java
work/Circular.java:3: 錯誤: 找不到符號
    Circle bottom;
    ^
  符號:   類 Circle
  位置: 類 Circular

解決方案:

/alive/string/work/文件夾內有多個類文件,直接編譯主類是錯誤的。
可以在work/文件夾下執行javac *.java,或者在/alive/string/文件夾下執行javac work/*.java

即可。*號是通配符,代表任何字元,來運行有多個類名的程序。

但是如果在/alive/string/文件夾內運行java work/*.java是錯誤的,會提示你:

錯誤: 找不到或無法加載主類 Circle.java

原因在於兩點:
Ⅰ.後綴名為.java的源文件由javac.exe來執行,而後綴名為.class的字節碼文件由java.exe來執行。
Ⅱ.用java.exe解釋的時候,一定要解釋主類java xxx,(xxx即為你的多個類文件的主類)。
如果你要解釋其他文件夾下的程序,正確的用法應該是輸入java -cp 路徑 主類名
我這裏是在/alive/string/文件夾下執行java -cp work Circle

,即可正常解釋。

無法對含有多個.java(或.class)文檔的程序進行編譯(或解釋)