我用的是MyEclipse如何打包呢,我这个类引用了lib库里的另一个JAR包名字是comm.jar,该怎么打包???我把程序发出来了,
谁能教下如何打包
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/** *//******************************************
* 程序文件名称:ReadComm.java
* 功能:从串行口COM1中接收数据
******************************************/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.comm.*; class R_Frame extends Frame implements Runnable,ActionListener,SerialPortEventListener
{
/**//* 检测系统中可用的通讯端口类 */
static CommPortIdentifier portId;
/**//* Enumeration 为枚举型类,在java.util中 */
static Enumeration portList;
InputStream inputStream;
/**//* 声明RS-232串行端口的成员变量 */
SerialPort serialPort;
Thread readThread;
String str="";
TextField out_message=new TextField("上面文本框显示接收到的数据");
TextArea in_message=new TextArea();
Button btnOpen=new Button("打开串口");
private String portName;
private int rate; public String getPortName() {
return portName;
}public void setPortName(String portName) {
this.portName = portName;
}public int getRate() {
return rate;
}public void setRate(int rate) {
this.rate = rate;
}/**//*建立窗体*/
R_Frame()
{
super("串口接收数据");
setSize(200,200);
setVisible(true);
btnOpen.addActionListener(this);
add(out_message,"South");
add(in_message,"Center");
add(btnOpen,"North");
} //R_Frame() end /**//*点击按扭所触发的事件:打开串口,并监听串口. */
public void actionPerformed(ActionEvent event)
{
/**//*获取系统中所有的通讯端口 */
portList=CommPortIdentifier.getPortIdentifiers();
/**//* 用循环结构找出串口 */
while (portList.hasMoreElements()){
/**//*强制转换为通讯端口类型*/
portId=(CommPortIdentifier)portList.nextElement();
if(portId.getPortType() == CommPortIdentifier.PORT_SERIAL){
if (portId.getName().equals("COM1")) {
try {
serialPort = (SerialPort) portId.open("ReadComm", 2000);
out_message.setText("已打开端口COM1,正在接收数据..... ");
}
catch (PortInUseException e) { } /**//*设置串口监听器*/
try {
serialPort.addEventListener(this);
}
catch (TooManyListenersException e) { }
/**//* 侦听到串口有数据,触发串口事件*/
serialPort.notifyOnDataAvailable(true);
} //if end
} //if end
} //while end
readThread = new Thread(this);
readThread.start();//线程负责每接收一次数据休眠20秒钟
} //actionPerformed() end
/**//*接收数据后休眠20秒钟*/
public void run() {
try {
Thread.sleep(20000);
}
catch (InterruptedException e) { }
} //run() end /**//*串口监听器触发的事件,设置串口通讯参数,读取数据并写到文本区中*/
public void serialEvent(SerialPortEvent event) {
/**//*设置串口通讯参数:波特率、数据位、停止位、奇偶校验*/
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
}
catch (UnsupportedCommOperationException e) {}
byte[] readBuffer = new byte[20];
try {
inputStream = serialPort.getInputStream();
}
catch (IOException e) {}
try {
/**//* 从线路上读取数据流 */
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer);
} //while end
str=new String(readBuffer);
/**//*接收到的数据存放到文本区中*/
in_message.append(str+" ");
}
catch (IOException e) {}
//关闭流和端口
try {
inputStream.close();
} catch (IOException e1) {
System.out.println("关闭输入流时异常出现:"+e1.getMessage());
}
try{
serialPort.close();
}catch(Exception e){
System.out.println("关闭端口时异常出现:"+e.getMessage());
} } //serialEvent() end
} //类R_Frame end public class ReadComm
{
public static void main(String args[])
{
/**//* 实例化接收串口数据的窗体类 */
R_Frame R_win=new R_Frame();
/**//* 定义窗体适配器的关闭按钮功能 */
R_win.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0); }
});
R_win.pack();
}}
谁能教下如何打包
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/** *//******************************************
* 程序文件名称:ReadComm.java
* 功能:从串行口COM1中接收数据
******************************************/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.comm.*; class R_Frame extends Frame implements Runnable,ActionListener,SerialPortEventListener
{
/**//* 检测系统中可用的通讯端口类 */
static CommPortIdentifier portId;
/**//* Enumeration 为枚举型类,在java.util中 */
static Enumeration portList;
InputStream inputStream;
/**//* 声明RS-232串行端口的成员变量 */
SerialPort serialPort;
Thread readThread;
String str="";
TextField out_message=new TextField("上面文本框显示接收到的数据");
TextArea in_message=new TextArea();
Button btnOpen=new Button("打开串口");
private String portName;
private int rate; public String getPortName() {
return portName;
}public void setPortName(String portName) {
this.portName = portName;
}public int getRate() {
return rate;
}public void setRate(int rate) {
this.rate = rate;
}/**//*建立窗体*/
R_Frame()
{
super("串口接收数据");
setSize(200,200);
setVisible(true);
btnOpen.addActionListener(this);
add(out_message,"South");
add(in_message,"Center");
add(btnOpen,"North");
} //R_Frame() end /**//*点击按扭所触发的事件:打开串口,并监听串口. */
public void actionPerformed(ActionEvent event)
{
/**//*获取系统中所有的通讯端口 */
portList=CommPortIdentifier.getPortIdentifiers();
/**//* 用循环结构找出串口 */
while (portList.hasMoreElements()){
/**//*强制转换为通讯端口类型*/
portId=(CommPortIdentifier)portList.nextElement();
if(portId.getPortType() == CommPortIdentifier.PORT_SERIAL){
if (portId.getName().equals("COM1")) {
try {
serialPort = (SerialPort) portId.open("ReadComm", 2000);
out_message.setText("已打开端口COM1,正在接收数据..... ");
}
catch (PortInUseException e) { } /**//*设置串口监听器*/
try {
serialPort.addEventListener(this);
}
catch (TooManyListenersException e) { }
/**//* 侦听到串口有数据,触发串口事件*/
serialPort.notifyOnDataAvailable(true);
} //if end
} //if end
} //while end
readThread = new Thread(this);
readThread.start();//线程负责每接收一次数据休眠20秒钟
} //actionPerformed() end
/**//*接收数据后休眠20秒钟*/
public void run() {
try {
Thread.sleep(20000);
}
catch (InterruptedException e) { }
} //run() end /**//*串口监听器触发的事件,设置串口通讯参数,读取数据并写到文本区中*/
public void serialEvent(SerialPortEvent event) {
/**//*设置串口通讯参数:波特率、数据位、停止位、奇偶校验*/
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
}
catch (UnsupportedCommOperationException e) {}
byte[] readBuffer = new byte[20];
try {
inputStream = serialPort.getInputStream();
}
catch (IOException e) {}
try {
/**//* 从线路上读取数据流 */
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer);
} //while end
str=new String(readBuffer);
/**//*接收到的数据存放到文本区中*/
in_message.append(str+" ");
}
catch (IOException e) {}
//关闭流和端口
try {
inputStream.close();
} catch (IOException e1) {
System.out.println("关闭输入流时异常出现:"+e1.getMessage());
}
try{
serialPort.close();
}catch(Exception e){
System.out.println("关闭端口时异常出现:"+e.getMessage());
} } //serialEvent() end
} //类R_Frame end public class ReadComm
{
public static void main(String args[])
{
/**//* 实例化接收串口数据的窗体类 */
R_Frame R_win=new R_Frame();
/**//* 定义窗体适配器的关闭按钮功能 */
R_win.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0); }
});
R_win.pack();
}}
工程上点右键选export->java->jar file