dadi723 2017-02-05 08:47 采纳率: 0%
浏览 2789
已采纳

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就会把它依赖的类都编译。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!