【0】README
1)本文主要解决“错误,找不到符号”
【1】 console error info
1)error : 
E:\bench-cluster\mybatis_in_action_eclipse\xmpp\src>javac com/communication/qq/ServerPlainTest.java
com\communication\qq\ServerPlainTest.java:14: 错误: 找不到符号new Thread(new ReceiveHandler(s, Role.SERVER)).start();^符号:   类 ReceiveHandler位置: 类 ServerPlainTest
com\communication\qq\ServerPlainTest.java:15: 错误: 找不到符号new Thread(new SendHandler(s, Role.SERVER)).start();^符号:   类 SendHandler位置: 类 ServerPlainTest
2 个错误

2)reasons of errors:  参考一下代码,ServerPlainTest 依赖于 ReceiverHandler.java  and SendHandler.java ;而 ReceiverHandler.java and SendHandler.java 定义在 MessageHandler.java ,它们属于包内可见性,包外不可见; 由编译报错的结果来看,当javac 编译器去编译ServerPlainTest.java的时候,它 不会去编译 包可见性的类,所以就不会产生 相应的 .class 文件,所以报错;

public class ServerPlainTest { // 包内包外可见public static void main(String[] args) {try {ServerSocket ss = new ServerSocket(8189);System.out.println("the server has startuped, waiting for connections.");while (true) { // accept multiple clients connection request.Socket s = ss.accept();System.out.println("a client has connected successfully.");new Thread(new ReceiveHandler(s, Role.SERVER)).start();new Thread(new SendHandler(s, Role.SERVER)).start();}} catch (Exception e) {System.out.println(e);}}
}
public class MessageHandler { // 包内包外可见.
}// receive msg.
class ReceiveHandler implements Runnable { // 包内可见性.private Socket socket;private Role role;public ReceiveHandler(Socket socket, Role role) {this.socket = socket;this.role = role;       }public void run() {try {System.out.println(role + " executes ReceiveHandler.run method.");InputStream is = socket.getInputStream();Scanner in = new Scanner(is);// echo client inputboolean done = false;while (!done && in.hasNextLine()) {String line = in.nextLine();System.out.println("from "+ role + ": " + line);if (line.trim().equalsIgnoreCase("bye")) {done = true;}}// close relative instance.in.close();} catch (IOException e) {e.printStackTrace();} }
}// send msg.
class SendHandler implements Runnable { // 包内可见性.private Socket socket;private Role role;public SendHandler(Socket socket, Role role) {this.socket = socket;this.role = role;     }public void run() {PrintWriter pw = null;try {System.out.println(role + " executes SendHandler.run method.");Scanner s = new Scanner(System.in);OutputStream os = socket.getOutputStream();pw = new PrintWriter(os, true); // autoFlush=true.if (role.equals(Role.SERVER)) {pw.println("from server: you've connected with the server.");}while (s.hasNext()) {String line = s.nextLine();pw.println(line);}pw.println("connection closed successfully. bye!");} catch (Exception e) {e.printStackTrace();}  }
}

【2】solution:在编译 ServerPlainTest.java 之前,编译 MessageHandler.java, 这样会附带编译 ReceiverHandler.java and SendHandler.java ;

E:\bench-cluster\mybatis_in_action_eclipse\xmpp\src>javac com/communication/qq/ServerPlainTest.java com/communication/qq/MessageHandler.java

编译报错+解决方法:错误: 找不到符号相关推荐

  1. Frambuffer_rd在Windows下的vivado 2020.1编译报错解决方法

    vivado2020.1 HLS生成的IP在Windows下报错 Frambuffer_rd在Windows下的vivado 2020.1编译报错解决方法 我的解决方法: 编译过程如下 之后重新对工程 ...

  2. 【工具】更新arduino最新esp8266库离线安装包3.0.1、ESP32库离线安装包1.0.6,库编译报错解决方法...

    公众号关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 210806更新ESP32和ESP8266最新离线安装包下载地址.     因为各种 ...

  3. java找不到符号类socket,编译报错+解决方法:错误: 找不到符号

    public class ServerPlainTest { // 包内包外可见 public static void main(String[] args) { try { ServerSocket ...

  4. Visual Studio2022编译报错解决方法

    项目场景: 编译工程 问题描述 问题1: 编译出现E1696错误,如下图所示: 问题2: 解决方案1(问题1): 选择红圈的2个选项,点击右下角的"修改" 解决方案2(问题2): ...

  5. MSP430F435 c语言IAR编译软件报错解决方法笔记

    IAR编译软件报错解决方法 1.问题一:堆栈溢出出现警告.已进入主函数就开始报警堆栈溢出. 报错原因:在主函数中定义了大量的大数组,看门狗已经关闭,但仍未完成数据初始化,导致堆栈溢出. 解决方法:定义 ...

  6. win10关于Intel Optane(tm) Memory Pinning 无法加载DLL”iaStorAfsServiceApi.dll”:找不到指定模块报错解决方法

    摘要:最近自己笔记本系统授权过期,刚好有碰上系统更新.升级后以点击文件夹或者offie套装就报lntel Optane(tm) MemoryPinning无法加载DLL "iaStorAfs ...

  7. node-sass报错解决方法

    node-sass报错解决方法 node-sass报错解决方法 在Vue.js中,每一个vue文件都是一个组件,在.vue文件中可以将模板,脚本,样式写在一起,便于组织整个组件.在使用template ...

  8. 常见Eclipse SVN插件报错解决方法

    名师指导: 常见Eclipse SVN插件报错解决方法 在学习SVN的过程中,你经常会遇到SVN插件问题,本文介绍一下在安装SVN插件时常见Eclipse SVN插件报错信息问题,希望本文介绍对你的学 ...

  9. firefly AIO-RK3399J Linux SDK编译报错解决

    Firefly AIO-RK3399J Linux SDK编译报错解决 Zhang-Zhen 2020-09-30 22:01:04  收藏 分类专栏: RK3399工作记录 文章标签: linux  ...

最新文章

  1. iOS多线程中performSelector: 和dispatch_time的不同
  2. react native TypeError network request failed
  3. 中国航发9名劳模工匠变身“高级制造工程师”
  4. 如何才能避免聚会尬聊
  5. c语言字符串截取_一文搞懂 C 语言 #、##、__VA_ARGS__
  6. linux(Ubuntu)常用命令整理 -- 基础篇 -- 持续更新
  7. 免费素材下载:超棒的摄影相关图标下载
  8. hdu4727搜索+stl。轻微剪枝
  9. 帆软参数面板根据选择项type显示和隐藏参数项(或${if()}在SQL中的用法)根据条件动态显示参数控件
  10. 第十五章笔记 虚拟机管理
  11. Ubuntu磁盘分区和挂载
  12. web前端开发分享-css,js进阶篇
  13. 模电_第七章_正弦波振荡电路
  14. 1.3.13 路由器 RIP 动态路由配置
  15. android lcd工作原理,Android display架构分析(二)
  16. TwinCAT3读取CSV文件
  17. linux下kegg注释软件,科学网—生物信息——kegg分析的kobas软件的安装与使用 - 孙朋川的博文...
  18. 正在使用计算机突然停电怎么办,电脑突然断电怎么办?电脑突然断电开不了机解决教程...
  19. Python PEP8 基本常用规范
  20. consul重启导致服务必须跟着重启解决方案

热门文章

  1. CF296B dp\容斥
  2. Matlab与线性代数
  3. HAPPY2020暑假训练前复习
  4. [NOI2018] 归程(线段树维护并查集的可持久化/kruskal重构树,倍增+dijkstra最短路)
  5. AT4144-[ARC098D]Donation【Kruskal重构树,dp】
  6. ssl提高组周六模拟赛【2019.3.2】
  7. jzoj4228-C【dp】
  8. P2742-二维凸包/圈奶牛Fencing the Cows【凸包】
  9. jzoj3794,P1383-高级打字机【欧拉序,离线O(n)】
  10. 【动态规划】矩阵链相乘 (ssl 1596)/能量项链 (ssl 2006)