在控制台運行java時出錯:錯誤: 找不到或無法加載主類


java源程序在eclipse里直接運行的話沒有問題,但是在控制台時出現了錯誤。

1. 編譯 

     

     編譯沒有出錯,.class文件也正確顯示的。

 

2. 運行

      

     出錯了,首先,我的環境是配置好的,也就是javac xxx.java,和java xxx之前是可以正常編譯和運行的。那么這兒是什么問題呢?

 

3. 原因

     因為我的源碼里有引入了一個包socket,socket就是我這個源碼Server.java所在的包。這兒運行報錯的原因就是引入這個包導致的。

package socket;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
	public static void main(String[] args) {
		try {
			//服務端打開端口8888
			ServerSocket port = new ServerSocket(8888);
			//設置監聽
			System.out.println("監聽端口號:" + port);
			Socket s = port.accept();
			System.out.println("有連接過來" + s);
			port.close();
			s.close();
		} catch (IOException e) {
			e.printStackTrace();
		}	
	}
}

 

4. 解決辦法

     方法一

               因為這個文件就在這個包下,所以其實不用引入這句話也是可以編譯運行的。但是你會發現在IDE里會提示出錯,而且也並不推薦這種做法。

               

      方法二

              編譯和運行的命令稍微改一下

              編譯

javac socket\Server.java  

            即從包名目錄開始一直到源碼文件 

             

            可以看到,編譯正常

           運行

java socket.Server

 即包名.一直到字節碼文件,也就是.class文件。注意這兒不是java socket\Server,而是用"."

            

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM