我正在尝试使用 J2ME 编写一个javax.microedition.rms.RecordStore
用于存储持久数据的应用程序。我正在 Gentoo 上使用 NetBeans 6.0 和 J2ME 2.2 开发这个项目。当我尝试运行该项目时,我收到一个错误,因为显然无法创建记录存储。这是包含堆栈跟踪的输出示例:
罐: 预运行: cldc 运行: 将 1 个文件复制到 /home/dzaslavs/ellipsix/programming/cataschedule/dist/nbrun1623864904410254936 将 1 个文件复制到 /home/dzaslavs/ellipsix/programming/cataschedule/dist/nbrun1623864904410254936 OTA执行的Jad URL:http://localhost:8082/servlet/org.netbeans.modules.mobility.project.jam.JAMServlet/home/dzaslavs/ellipsix/programming/cataschedule/dist//CATASchedule.jad 在执行模式下启动模拟器 使用存储根 rms 运行 javax.microedition.rms.RecordStoreException:打开记录存储文件时出错 在 javax.microedition.rms.RecordStore.(RecordStore.java:2150) 在 javax.microedition.rms.RecordStore.openRecordStore(RecordStore.java:208) 在 net.ellipsix.cata.StopRecordStore.(StopRecordStore.java:48) 在 net.ellipsix.cata.CATAMIDlet.getStopList(CATAMIDlet.java:169) 在 net.ellipsix.cata.CATAMIDlet.startMIDlet(CATAMIDlet.java:64) 在 net.ellipsix.cata.CATAMIDlet.startApp(CATAMIDlet.java:449) 在 javax.microedition.midlet.MIDletProxy.startApp(MIDletProxy.java:44) 在 com.sun.midp.midlet.Scheduler.schedule(Scheduler.java:372) 在 com.sun.midp.main.Main.runLocalClass(Main.java:461) 在 com.sun.midp.main.Main.main(Main.java:126)
我找到了一个链接,指向我认为的来源RecordStore
,其中抛出了异常:http: //jcs.mobile-utopia.com/jcs/78052_RecordStore.java。相关线在底部附近,基本上是这样的:
try {
...
}
catch (java.io.IOException ioe) {
...
throw new RecordStoreException("error opening record store " +
"file");
}
因此这表明当 NetBeans 尝试创建记录存储文件时触发了 IOException。但为什么会这样呢?不幸的是,输出没有说明记录存储创建失败的确切原因。有谁知道可能出了什么问题,或者有关 NetBeans 如何RecordStore
在内部处理 s 的任何信息?
这是我的代码中触发错误的构造函数(如果相关):
public StopRecordStore() throws RecordStoreException {
this.store = RecordStore.openRecordStore("freqstops", true);
if (store.getNumRecords() == 0) {
try {
byte[] collegeAllen = new StopRecord((short)1, "College & Allen").toBytes();
store.addRecord(collegeAllen, 0, collegeAllen.length);
}
catch(IOException ioe) {
ioe.printStackTrace();
} // do nothing
}
}
编辑:... 10 小时后没有答案?真的吗?