2011-11-23 90 views
0

試圖compilie這個AuctionClientMain.java,這是我得到的,不能FIGUR出來的錯誤:錯誤編譯時cannont訪問類

AuctionClientMain.java:16:不能訪問AuctionClient 糟糕的類文件:。\ AuctionClient.class 類文件包含錯誤的類:Assignment.AuctionClient 請刪除或確保它出現在類路徑的正確子目錄中。 AuctionClient a = new AuctionClient(args [0],args [1],port);

我已經包括AuctionClientMain.java

import Auction.*; 
import java.io.*; 

public class AuctionClientMain 
{ 
    //Create the client 
    public static void main (String args[]) throws IOException 
    { 
     if(args.length!=3) 
     { 
      throw new RuntimeException ("Syntax: java AuctionClient <name> <serverhost> <port>"); 
     } 

     //Convert port taken in as string to an integer 
     int port = Integer.parseInt(args[2]); 
     AuctionClient a = new AuctionClient(args[0],args[1],port); 

    } 

} 

和拍賣客戶

package Auction; 

import java.io.*; 
import java.net.*; 

public class AuctionClient 
{ 

    public AuctionGui gui; 

    private Socket socket; 
    private DataInputStream dataIn; 
    private DataOutputStream dataOut; 

    //Auction Client constructor String name used as identifier for each client to allow server to pick the winning bidder 
    public AuctionClient(String name,String server, int port) 
    { 
     //Create a new gui 
     gui = new AuctionGui("Bidomatic 5000"); 
     //Add the key listener to the input field 
     gui.input.addKeyListener (new EnterListener(this,gui)); 
     //Add the exit listener to the window 
     gui.addWindowListener(new ExitListener(this)); 

     try 
     { 
      //Create a new socket with server name and port number provided 
      socket = new Socket(server, port); 
      //Create new data input stream 
      dataIn = new DataInputStream(socket.getInputStream()); 
      //Create new data outpit stream 
      dataOut = new DataOutputStream(socket.getOutputStream()); 

      dataOut.writeUTF(name); 
       while (true) 
       { 
       gui.output.append("\n"+dataIn.readUTF()); 
      } 
     } 
     catch (Exception e) 
     { 
     e.printStackTrace(); 
     } 

    } 



    //Send bid to output stream 
    public void sentBid(String bid) 
    { 
     try 
     { 
      //Write bid out 
      dataOut.writeUTF(bid); 
     } 

     catch(IOException e) 
     { 
      e.printStackTrace(); 
     } 

    } 

    public void disconnect() 
    { 
     try 
     { 
      socket.close(); 
     } 

     catch(IOException e) 
     { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

'Assignment.AuctionClient' - 它從哪裏得到'Assignment'? –

回答

-1

因爲AuctionClient是在拍賣pacakge,編譯器期望找到Java源文件中directroy稱爲拍賣。

0

您的AuctionClientMain類似乎在默認包中。 AuctionClient課程包含在Auction包中。 AuctionClient的.class文件需要位於與AuctionClientMain相關的名爲Auction的子目錄中。

或者,將AuctionClient置於默認包中或將AuctionClientMain置於包Auction中。

在附註上,Java約定是包名都是小寫。使用package auction;而不是package Auction;會更好。