dadi723
2017-02-05 08:47
采纳率: 42.9%
浏览 2.7k
已采纳

Java用命令行编译提示找不到符号,在eclipse中正常

如图,用javac命令编译就提示找不到符号
图片说明
用eclipse是正常的
代码如下:
发送端:

 package cheat;
import java.io.*;
import java.net.*;
 class cheatUDP1 implements Runnable{
    private DatagramSocket ds;
    public cheatUDP1(DatagramSocket ds){
         this.ds=ds;
    }
    public void run(){
        try{
            BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
            String line=null;
            while((line=buf.readLine())!=null){
                byte[] by=line.getBytes();
                DatagramPacket dp=new DatagramPacket(by,by.length,InetAddress.getByName(InetAddress.getLocalHost().getHostAddress()),1000);
                ds.send(dp);
            }
            ds.close();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

接收端:

 package cheat;
import java.net.*;
class cheatUDP2 implements Runnable{
    private DatagramSocket ds;
    public cheatUDP2(DatagramSocket ds){
         this.ds=ds;
    }
    public void run(){
        try{
            while(true){
                byte[] buf=new byte[1024];
                DatagramPacket dp=new DatagramPacket(buf,buf.length);
                ds.receive(dp);
                String name=dp.getAddress().getHostName();
                String data=new String(dp.getData(),0,dp.getLength());
                System.out.println("主机名:"+name);
                System.out.println(data);
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

测试程序:

 package cheat;
import java.net.*;
public class cheatdemo {
    public static void main(String[] args){
        DatagramSocket send=null;
        DatagramSocket recieve=null;
        try{
        send=new DatagramSocket();
        recieve=new DatagramSocket(1000);
        }catch(Exception e){
            e.printStackTrace();
        }
        Thread t1=new Thread(new cheatUDP1(send));
        Thread t2=new Thread(new cheatUDP1(recieve));
    }
}

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 编程爱好者熊浪 2017-02-05 13:47
    已采纳

    你编译java文件就是编译java文件,如果在这个java文件中用到了别的类,而这个类又不是你现在的系统环境的jre有的类,这时候就会报找不到类了,这时候就不能单独编译这个类了,你需要同事编译所有需要用到的类的java文件,可以把他们放到一定的路径下面,javac *.java,同时编译,之后执行main类就可以。其实eclipse就会把它依赖的类都编译。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • oyljerry 2017-02-05 13:09

    命令行时你没有编译多个Java文件,所以找不到另一个类,eclipse中是工程方式编译的

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题