永続データを格納するためにjavax.microedition.rms.RecordStore
を使用するJ2MEアプリケーションを作成しようとしています。私はGentooのNetBeans 6.0とJ2ME 2.2でこのプロジェクトを開発しています。プロジェクトを実行しようとすると、明らかにレコードストアを作成できないため、エラーが発生します。 http://jcs.mobile-utopia.com/jcs/78052_RecordStore.java:NetBeans 6.0でjavax.microedition.rms.RecordStoreを作成する際のエラー
jar: pre-run: cldc-run: Copying 1 file to /home/dzaslavs/ellipsix/programming/cataschedule/dist/nbrun1623864904410254936 Copying 1 file to /home/dzaslavs/ellipsix/programming/cataschedule/dist/nbrun1623864904410254936 Jad URL for OTA execution: http://localhost:8082/servlet/org.netbeans.modules.mobility.project.jam.JAMServlet/home/dzaslavs/ellipsix/programming/cataschedule/dist//CATASchedule.jad Starting emulator in execution mode Running with storage root rms javax.microedition.rms.RecordStoreException: error opening record store file at javax.microedition.rms.RecordStore.(RecordStore.java:2150) at javax.microedition.rms.RecordStore.openRecordStore(RecordStore.java:208) at net.ellipsix.cata.StopRecordStore.(StopRecordStore.java:48) at net.ellipsix.cata.CATAMIDlet.getStopList(CATAMIDlet.java:169) at net.ellipsix.cata.CATAMIDlet.startMIDlet(CATAMIDlet.java:64) at net.ellipsix.cata.CATAMIDlet.startApp(CATAMIDlet.java:449) at javax.microedition.midlet.MIDletProxy.startApp(MIDletProxy.java:44) at com.sun.midp.midlet.Scheduler.schedule(Scheduler.java:372) at com.sun.midp.main.Main.runLocalClass(Main.java:461) at com.sun.midp.main.Main.main(Main.java:126)
私はは、例外がスローされているRecordStore
の源だと思う何へのリンクを見つけた:ここではスタックトレースを含む出力のサンプルです。該当する行は、基本的にはこのように、ダウン底部付近にある:
try {
...
}
catch (java.io.IOException ioe) {
...
throw new RecordStoreException("error opening record store " +
"file");
}
ようににIOExceptionがNetBeansは、レコード・ストア・ファイルを作成しようとしたときにトリガがあることを示唆しています。しかし、なぜそれが起こるだろうか?残念ながら、レコードストアの作成に失敗した理由は、残念ながら黙っています。誰かが何がうまくいかないか、またはNetBeansが内部でRecordStore
をどのように処理するかについて知っていますか?それが関連するかどう
はここで、エラーがトリガされている私のコードからのコンストラクタです:
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
}
}
EDIT:...いいえ答え10時間後に?本当に?