代码二:
package serial;
import java.io.*;
/**
*
* This class reads message from the specific serial port and save
* the message to the serial buffer.
*
*/
public class ReadSerial extends Thread
{
private SerialBuffer ComBuffer;
private InputStream ComPort;
/**
*
* Constructor
*
* @param SB The buffer to save the incoming messages.
* @param Port The InputStream from the specific serial port.
*
*/
public ReadSerial(SerialBuffer SB, InputStream Port)
{
ComBuffer = SB;
ComPort = Port;
}
public void run()
{
int c;
try
{
while (true)
{
c = ComPort.read();
ComBuffer.PutChar(c);
}
} catch (IOException e) {}
}
}
package serial;
import java.io.*;
/**
*
* This class reads message from the specific serial port and save
* the message to the serial buffer.
*
*/
public class ReadSerial extends Thread
{
private SerialBuffer ComBuffer;
private InputStream ComPort;
/**
*
* Constructor
*
* @param SB The buffer to save the incoming messages.
* @param Port The InputStream from the specific serial port.
*
*/
public ReadSerial(SerialBuffer SB, InputStream Port)
{
ComBuffer = SB;
ComPort = Port;
}
public void run()
{
int c;
try
{
while (true)
{
c = ComPort.read();
ComBuffer.PutChar(c);
}
} catch (IOException e) {}
}
}
解决方案 »
- 关于String、StringBuffer和StringBuilder之间的区别?
- double计算小数点后的值不对,请看看那里的问题
- java中如何替换 '['字符啊
- 请问如何画一个矩形,鼠标可以脱拽它?谢谢
- 抽象类我该怎么实力化它呢?例如要申明一个Image对象该怎么做?
- 计算机专业大学生活学习现状分析与就业应对
- 看了很久的书 怎么连一个键盘输入一个数字都搞不定,请指点一下!
- 大神们帮我看看,快被jtable给搞死了
- 请问如何定义一个event的处理函数,才能指向硬盘上的一个文件,并运行它?
- 请问VJ++开发出的东西和JDK,JBULIDER开发的东西有什摸区别?
- 感谢帮助过我的大哥大姐们 我老提出弱智问题 你们还能不厌其烦的为我解答 我谢谢了
- 窗口刷新问题
你用javac -D .试试看!!
你用的哪个版本的javac? javac什么时候多出一个-D选项了?to 楼主:
不过细看之下确实有一个地方会出现cannot resolve symbol错误,出在SerialBuffer类的puChar方法的文档注释,如果运行javadoc估计会出这个错:cannot resolve symbol t/**
*
* This function stores a character captured from the serial port to the
* buffer area.
*
* @param t The char value of the character to be stored. [<--- here is t]
*/
public synchronized void PutChar(int c) [<--- here is c]
-d .
-d <directory> Specify where to place generated class files
C:\serial>javac ReadSerial.java
ReadSerial.java:11: cannot resolve symbol
symbol : class SerialBuffer
location: class serial.ReadSerial
private SerialBuffer ComBuffer;
^
ReadSerial.java:21: cannot resolve symbol
symbol : class SerialBuffer
location: class serial.ReadSerial
public ReadSerial(SerialBuffer SB, InputStream Port)
^
2 errors
怎么回事呀?
我用javac -d ReadSerial.java
没报什么编译错误,但是在serial文件夹下根本没有ReadSerial.class文件!
为什么呀.....
C:\serial>javac ReadSerial.java
ReadSerial.java:11: cannot resolve symbol
symbol : class SerialBuffer
location: class serial.ReadSerial
private SerialBuffer ComBuffer;
^
ReadSerial.java:21: cannot resolve symbol
symbol : class SerialBuffer
location: class serial.ReadSerial
public ReadSerial(SerialBuffer SB, InputStream Port)
^
2 errors
怎么回事呀?
我用javac -d ReadSerial.java
没报什么编译错误,但是在serial文件夹下根本没有ReadSerial.class文件!
为什么呀.....
把两个java放在一起编译.[zxh@spider serial]$ ls -l
总用量 8
-rw-r--r-- 1 zxh develop 604 7月 3 12:36 ReadSerial.java
-rw-r--r-- 1 zxh develop 1181 7月 3 12:35 SerialBuffer.java
[zxh@spider serial]$
[zxh@spider serial]$ javac *.java
[zxh@spider serial]$
[zxh@spider serial]$
[zxh@spider serial]$ ls -l
总用量 16
-rw-r--r-- 1 zxh develop 601 7月 3 12:36 ReadSerial.class
-rw-r--r-- 1 zxh develop 604 7月 3 12:36 ReadSerial.java
-rw-r--r-- 1 zxh develop 1104 7月 3 12:36 SerialBuffer.class
-rw-r--r-- 1 zxh develop 1181 7月 3 12:35 SerialBuffer.java
假如当前工作目录为E:\JAVA\Test
1)将ReadSerial.java和SerialBuffer.java保存在当前工作目录下;
2)在当前目录下建立一个文件夹serial,也就是你的跟在package后的包名;
3)先编译SerialBuffer.java,将生成的SerialBuffer.class文件拷贝到serial文件夹下;
A.E:\JAVA\Test>javac SerialBuffer.java //生成SerialBuffer.class文件
B.将E:\JAVA\Test\SerialBuffer.class拷贝到E:\JAVA\Test\serial\SerialBuffer.class
4)再回到当前工作目录下编译ReadSerial.java就不会出现错误了;
E:\JAVA\Test>javac ReadSerial.java
一切OK!
private String CurrentMsg="";
private String TempContent="";
是最好的,因为这样一来可以避免出现空指针错误:Exception:java.lang.NullPointerException