分享一下,可以少走一点弯路,是我平时解决问题的点滴
1、第三方包的引用
a、工程项目增加Libraries
b、在工程下新建lib目录,把第三方包放到此目录
c、在打开plugin.xml,在Build标签页中,打开Extra Classpath Entries,添加jar
d、在Runtime标签页中,增加jar
e、在打包好的rcp程序中使用的Application.class是使用/plugins/插件名/插件.jar,所以,
在打包时,要新建一个'插件.jar',并把他的文件指向你的工程'src'目录
2、文件处理,绝对路径
a、在eclipse工具中运行rcp程序,默认的当前路径为c:/Document and Setting/window用户/下
b、rcp打包好之后,当前路径为启动程序的当前目录(安装目录)
c、开发时,把要读取的文件保存在当前目录(用户目录)
d、打包后,把要读取的文件放到安装目录
3、设置eclipse开发rcp程序的jre
可以在工程中选择jdk(工程->右键->properties->JRE System Library)
插件工程的jre使用本地安装的jre,可以指定运行时jre(java -jar startup.jar)
4、打包好的rcp程序,可以通过执行java -jar startup.jar来运行
不一定要用eclipse生成的可执行文件运行
运行的JRE可以通过指定java.exe文件来指定
5、串口开发包
a、串口开发使用sun公司的开发包comm2.0进行开发
b、comm2.0在sun的网站上找不到针对window的开发包
c、把comm.jar包放到jre(目标程序运新的虚拟机)目录的'lib\ext\'目录下
d、把javax.comm.properties文件放到jre(目标程序运新的虚拟机)目录的'lib'目录下
e、把win32com.dll文件放到jre(目标程序运新的虚拟机)目录的'bin'目录下
6、editor编辑器问题
a、使用eclipse的向导生成的editor默认代码,没有设置site信息,要添加以下代码
public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
// TODO Auto-generated method stub
setSite(site);
setInputWithNotify(input);
String filepath = input.getName();
setPartName(filepath);
setContentDescription(filepath);
}
b、构造一个空的输入时,当打开同一个编辑器时,会有多个相同的编辑器打开,是因为input自己比较时,return false
要自己构造一个输入,并对输入作比较
7、SWT控件
a、eclipse的SWT和sun公司的swing控件不能发到同一个面板中
b、eclipse的SWT控件宣布成final,是不能继承的
c、重写SWT控件,可以在普通的程序中使用,但在rcp中使用遇到一个问题,抛出字节验证错误
8、SWT的Dialog
a、swt的dialog是不能可视化开发的,要在dialog中放置一个composite,然后再composite中进行可视化开发
b、在打开dialog时,显示composite中的控件
9、串口开发(TC35)
a、SMS串口开发PDU格式,发送时,不是要把所有的pdu包都要给TE,只需要把短信中心号码后的数据发出
例如:0891 683108501505F0 11000B 81 3106656930F1 0000FF 0B E8329BFD06DDDF723619
发送指令为(java):
String = "AT+CMGS=23" + CR;//char cr = 13;回车符号
//等待'>'符号
String pud = "11000B813106656930F10000FF0BE8329BFD06DDDF723619" + ctrl_z;//char ctrl_z = 26;//结束符号
//成功应该会返回 +CMGS ack
b、UNICODE编码,java采用UNICODE编码,String.getBytes("UNICODE");返回四个字节的byte数据
例如:"中".getBytes("UNICODE"); "中"的UNICODE编码为'4E2D'
byte1 = -1;
byte2 = -2;
byte3 = 45;//十六进制2D=45(十进制)
byte4 = 78;//十六进制4E=78(十进制)
c、把UNICODE十六进制表示的字符串编码转换成字符串
String ucs2low = "2D";
String ucs2high = "4E";
byte[] bytes = new byte[4];
bytes[0] = -1;
bytes[1] = -2;
bytes[2] = (byte)Integer.parseInt(ucs2low, 16);
bytes[3] = (byte)Integer.parseInt(ucs2high, 16);
String charStr = new String(bytes,"UNICODE");
问题点数:1、回复次数:30Top
1 楼shirley_qi(小菜鸟++ == 学海无崖 ==)回复于 2006-11-02 09:39:27 得分 0
markTop
2 楼sdjinshiyu(石雨)回复于 2006-11-02 17:47:54 得分 0
mark,thanks~!Top
3 楼kzy055()回复于 2006-11-02 17:50:48 得分 0
楼主会GWT的组件吗?Top
4 楼happymgp(小黑)回复于 2006-11-03 09:17:12 得分 0
没有用过,只用过swtTop
5 楼therainman(一只郁闷的猪)回复于 2006-11-03 10:03:34 得分 0
希望再多一点这样的贴!Top
6 楼zwgs1985(流氓狗)回复于 2006-11-03 15:00:40 得分 0
希望再多一点这样的贴!Top
7 楼zcdsunny(轻风如我)回复于 2006-11-04 00:11:41 得分 0
markTop
8 楼JonsenElizee()回复于 2006-11-04 15:57:41 得分 0
DTop
9 楼joy1982109(浪心)(宁愿相信世界上有鬼也不要相信男人那张破嘴)回复于 2006-11-06 10:50:38 得分 0
thanks
ありがとございます。Top
10 楼tonghua_123(阿党)回复于 2006-11-06 18:30:55 得分 0
markTop
11 楼xpice(透明玻璃)回复于 2006-11-25 20:39:22 得分 0
thank you very muchTop
12 楼losteveb()回复于 2006-11-26 09:32:25 得分 0
楼主分享的精神很赞Top
13 楼kpsbnc(月)回复于 2006-11-26 22:20:50 得分 0
thanks
Top
14 楼zhtx1984()回复于 2006-11-27 18:14:47 得分 0
good!Top
15 楼changlin365(changlin365)回复于 2006-11-27 20:45:19 得分 0
markTop
16 楼pizzame(芯火)回复于 2006-12-03 12:06:38 得分 0
楼主好人,mark学习Top
17 楼mingfuz(小猫钓鱼)回复于 2006-12-04 18:29:53 得分 0
谢谢楼主Top
18 楼bandit001(土匪)回复于 2006-12-05 13:42:44 得分 0
好!!!!!Top
19 楼Yans(跟贴是一种友谊)回复于 2006-12-28 13:54:06 得分 0
markTop
20 楼zxm_dgcstars(IT民工猎人)回复于 2006-12-28 16:00:50 得分 0
好心人Top
21 楼suxq126()回复于 2006-12-28 16:53:39 得分 0
markTop
22 楼azure001()回复于 2006-12-28 19:51:37 得分 0
谢谢LZ~mark~Top
23 楼eugenedj(今是昨非)回复于 2006-12-28 20:21:53 得分 0
顶一下Top
24 楼zclsq(花开堪折直须折,莫待无花空折枝。)回复于 2006-12-29 11:19:17 得分 0
用eclipse的向导生成的editor???是什么??可不可以详细介绍一下或给点学习资料.Top
25 楼pioneer_csdn(春天)回复于 2006-12-30 21:40:24 得分 0
对```好东西就要顶`Top
26 楼hitlhy()回复于 2006-12-31 14:51:39 得分 0
markTop
27 楼happymgp(小黑)回复于 2007-01-10 11:45:29 得分 0
不好意思,很久没上来了,在研究中国移动mms(彩信)的问题,花了1个多月才略微搞懂一点点
有兴趣的可以切磋一下
happymgp@163.com
主要的技术网站
wap:http://www.wapforum.org
3gpp:http://www.3gpp.org/
诺基亚技术论坛:http://www.forum.nokia.com
RFC标准中文文档:http://oss.org.cn/man/develop/rfc/default.htmTop
28 楼happymgp(小黑)回复于 2007-01-10 11:46:15 得分 0
10、彩信开发
1、彩信的发送是通过GPRS网络来进行发送的,MT要能处理GPRS AT指令,如:MC39,程序为:连接GPRS->发送彩信->断开连接
2、MODEM的波特率设置成19200
sPort.setSerialPortParams(19200,//
SerialPort.DATABITS_8,//
SerialPort.STOPBITS_1, //
SerialPort.PARITY_NONE);//
2、连接GPRS之前,要设置PDP CONTEXT 命令: AT+CGDCONT=1,"IP","cmwap"
3、发送ADT*99***1#指令连接GPRS网络
4、如果此指令返回CONNECT说明GPRS网络连接成功,可以和GGSN通过协议PPP进行通讯
5、以下进入PPP协议阶段(协商报文,应答报文,数据报文)
6、如果协商阶段不成功,GPRS服务器主动关闭连接,MODEM返回NO CARRIER
11、JavaMailAPI使用
使用test case测试时,可以发送mail,但是程序打包后运行抛出错误:
javax.activation.UnsupportedDataTypeException : no object DCH for MIME type text/html
原因:mail.jar、activation.jar这两个包打包时重复了
mail.jar包中包括:dsn.jar,imap.jar,mailapi.jar,pop3.jar,smtp.jar
使用mail.jar一个包就可以,不用把其他几个都包括进来,包括进来了就会抛出上面的错误
12、access问题
当使用sql语句对access进行访问时,出现“参数不足,期待是xx”这种错误时,
原因可能为:列出的字段或者查询条件中,存在未知的字段
access odbc自动把此未知的字段当成是一个参数,要求用户输入
例如:表jp_msg表中有三个字段
msgid int,
from char,
to char
执行下面的语句:select * from jp_msg where msgid=1,可以正常执行
如果:select msgid,form,to from jp_msg where msgid=1此语句有一个错误字段(form)在里面
access odbc不会报字段不认识,如是报:参数不足,期待是1.
13、hibernate邦定access问提
1、有些hibernate选项access不支持
例如:Query.setLong()函数操作不支持等等
14、拨号程序
a、windows的拨号程序连接中国移动的gprs网络有问题(估计是接入点的设置cmwap没有设置),
但用中国移动随E行拨号后,再用windows的拨号就能连接上。(2006-12-26)Top
29 楼happymgp(小黑)回复于 2007-01-10 12:00:17 得分 0
中国移动的mms涉及到一大堆协议,这里不知道怎么上穿附件,要不然把协议栈贴出来,会更明白一点
以下是通过gprs modem发送Mms的粗略流程
1、彩信文件打包:<<mms一致性文档>>上有详细的描述
4、通过GPRS modem拨号(ppp协议),建立gprs连接,得到中国移动分配的IP地址
3、wsp连接建立(在UDP上)
2、通过wsp协议,把打包好的mms文档数据发送出去Top
30 楼wtucel(仇)回复于 2007-01-11 11:30:29 得分 0
mark~学习一下Top




