首先你需要配置環境變量:
java 命令會在 CLASSPATH 目錄下找相應的 class 文件。
如果你輸入上面的命令,那么會在 CLASSPATH 下尋找 HelloWorld.class 文件。
如果你輸入上面的命令,那么會先在 CLASSPATH 找 tee 目錄,然后在 tee 目錄里找 Test.class 文件。
所以說如果你的環境變量配置錯誤,例如漏了".;",那么就不會在當前目錄尋找了。
(.代表當前目錄,..代表上級目錄)。
如果你輸入上面的命令,那么必然會在當前目錄找 HelloWorld.class 文件。
CLASSPATH=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
java HelloWorld
java tee.Test
所以說如果你的環境變量配置錯誤,例如漏了".;",那么就不會在當前目錄尋找了。
(.代表當前目錄,..代表上級目錄)。
java -cp . HelloWorld
關於包的問題,我再補充以下幾點(以我自己寫的socket發送端的代碼作為例子)
1 package WebProgramingDemo; 2 3 import java.io.IOException; 4 import java.net.DatagramPacket; 5 import java.net.DatagramSocket; 6 import java.net.InetAddress; 7 8 public class UDPSendDemo { 9 10 /** 11 * @param args 12 * @throws IOException 13 */ 14 /* 15 * 創建UDP傳輸的發送端的步驟; 16 * 1.建立UDP的socket服務 17 * 2.明確要發送的數據 18 * 3.將數據封裝成數據包 19 * 4.用socket服務的send方法將數據包發送出去 20 * 5.關閉資源 21 */ 22 public static void main(String[] args) throws IOException { 23 24 System.out.println("發送端啟動。。。"); 25 /* 26 * 創建UDP傳輸的發送端的步驟: 27 */ 28 //1.建立UDP的socket服務 29 DatagramSocket ds = new DatagramSocket(8888); 30 31 // 2.明確要發送的數據 32 String s1 = "UDP 傳輸顯示!"; 33 // 3.將數據封裝成數據包 34 byte buf[] = s1.getBytes(); 35 DatagramPacket dp = new DatagramPacket(buf, buf.length, 36 InetAddress.getByName("192.168.2.103"), 10000); 37 // 4.用socket服務的send方法將數據包發送出去 38 ds.send(dp); 39 // 5.關閉資源 40 ds.close(); 41 42 } 43 44 }
很明顯,UDPSendDemo屬於WebProgramingDemo包,
我們cmd命令行進入到包所在的目錄對該java文件進行編譯和運行,會出現這樣的錯誤:
這個類的全名應該是WebProgramingDemo.UDPSendDemo,而我們輸入的是UDPSendDemo.
接着,我們退回到上層目錄,因為編譯已經通過,所以我們直接運行: