2011-11-23 106 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;会更好。