不同MIDlet套件之间共享RecordStore对象【j2me开发精解第四章】
自学看《j2me开发精解》第四章4.4.3,却不知如何运行书上的程序,ShareMIDlet.java程序代码:
package com.j2medev.chapter4;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
public class ShareMIDlet extends MIDlet {
private RecordStore rs = null;
public void startApp() {
try{
//创建可共享的RecordStore,并向其中写入一条记录hello world。
rs = RecordStore.openRecordStore("test",true,RecordStore.AUTHMODE_ANY, false);
String s = "hello world";
byte[] data = s.getBytes();
rs.addRecord(data, 0,data.length);
}catch(RecordStoreException ex){
ex.printStackTrace();
}
Form form = new Form("共享");
form.append("写入hello word");
Display.getDisplay(this).setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
try{
rs.closeRecordStore();
}catch(RecordStoreException ex){
ex.printStackTrace();
}
}
}
jad设置:
MIDlet-1: ShareMIDlet, ,com.j2medev.chapter4.ShareMIDlet
MIDlet-Jar-Size: 1822
MIDlet-Jar-URL: sharerecord1.jar
MIDlet-Name: database
MIDlet-Vendor: j2medev
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.1
AccessMIDlet.java代码如下:
package com.j2medev.chapter4;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
public class AccessMIDlet extends MIDlet {
private RecordStore rs = null;
public void startApp() {
String s = "";
try{
//打开另外套件中的RecordStore对象并读取内容。
rs = RecordStore.openRecordStore("test", "j2medev", "database");
s = new String(rs.getRecord(1));
}catch(RecordStoreException ex){
ex.printStackTrace();
}
Form form = new Form("读取记录");
form.append(s);
Display.getDisplay(this).setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
try{
rs.closeRecordStore();
}catch(RecordStoreException ex){
ex.printStackTrace();
}
}
}
请问这个jad如何设置,这两个套件是放在一个项目里还是分开为两个项目,若为一个项目该如何设置.
本人是直接导入这两个项目,最后运行后 rs = RecordStore.openRecordStore("test", "j2medev", "database");出错。
pre-init:
pre-load-properties:
exists.config.active:
exists.netbeans.user:
exists.user.properties.file:
load-properties:
exists.platform.active:
exists.platform.configuration:
exists.platform.profile:
init:
post-init:
pre-preprocess:
deps-jar:
conditional-clean:
preprocess:
Pre-processing 0 file(s) into C:\Documents and Settings\yu\桌面\chapter4\sharerecord2\build\preprocessed directory.
post-preprocess:
extract-libs:
pre-compile:
compile:
post-compile:
obfuscate-check:
pre-obfuscate:
obfuscate:
pre-preverify:
preverify:
post-preverify:
create-jad:
add-configuration:
add-profile:
set-keystore-password:
set-alias-password:
pre-jar:
jar:
Updating application descriptor: C:\Documents and Settings\yu\桌面\chapter4\sharerecord2\dist\sharerecord2.jad
Generated "C:\Documents and Settings\yu\桌面\chapter4\sharerecord2\dist\sharerecord2.jar" is 1790 bytes.
post-jar:
run:
Copying 1 file to C:\Documents and Settings\yu\桌面\chapter4\sharerecord2\dist\nbrun3654
Copying 1 file to C:\Documents and Settings\yu\桌面\chapter4\sharerecord2\dist\nbrun3654
Starting emulator in execution mode
正在通过存储根 temp.DefaultColorPhone10 来运行
Running with locale: Chinese_People's Republic of China.936
Running in the identified_third_party security domain
javax.microedition.rms.RecordStoreNotFoundException: cannot find record store file
at javax.microedition.rms.RecordStore.<init>(RecordStore.java:2065)
at javax.microedition.rms.RecordStore.openRecordStore(RecordStore.java:357)
at com.j2medev.chapter4.AccessMIDlet.startApp(AccessMIDlet.java:13)
at javax.microedition.midlet.MIDletProxy.startApp(MIDletProxy.java:43)
at com.sun.midp.midlet.Scheduler.schedule(Scheduler.java:374)
at com.sun.midp.main.Main.runLocalClass(Main.java:466)
at com.sun.midp.main.Main.main(Main.java:120)