db40 - Windows zu Mac

BloodyNewbie

Mitglied
Hallo,

ich habe eine kleine Anwendung geschrieben, die mit paar Daten hin- und her rechnet und benutze für die Persistenz der Daten die Datenbank db40 (DatebaseForObjects).

Selbst auf einem Mac-Rechner funktioniert die Anwendung^^, nun will ich aber die Datenbank (db40) - Tabelle, die ein Mac-Rechner beschrieben hat, gerne in einem Windows-Rechner öffnen...leider geht das nicht :(
Wenn ich den File öffne, sehe ich dass Daten dort vorhanden sind...

Gibt es irgendeine Idee, wie man dieses Problem evtl. lösen kann?

Vielen Dank im vorraus.
MfG
 
Hallo,

bekommst du eine Fehlermeldung / Exception?
Verwendest du in den beiden JVMs (Win, Mac) das gleiche Character Encoding?

Gruß Tom
 
Hehe...das ist ja die große Frage^^

Woher weiß ich denn, welches Encoding ich in den JVM´s benutze?

In Eclipse habe ich irgendwo UTF-8 eingestellt, aber das gilt doch nur für das Compilieren, oder?

Der Mac-Benutzer, sowie alle anderen Windows-User haben von mir nur ein lauffähiges JAR-File( + paar Config-Ordner und paar andere JAR´s) erhalten.

Nun wollten diese User ihre Daten untereinander sharen...der Grundgedanke dabei war, dass man dann einfach diese Db40-Tabelle nimmt, kopiert und an die entsprechende Person sendet.
Unter Windows-Usern stellt das (bis jetzt) kein Problem dar...nur der Mac-User bereitet Probleme.

Die Fehlermeldung die ich beim Ausführen in der IDE erhalte:
Code:
Exception in thread "AWT-EventQueue-0" com.db4o.ext.InvalidIDException: id: 538968482
	at com.db4o.internal.LocalTransaction.readPointer(LocalTransaction.java:420)
	at com.db4o.internal.LocalTransaction.getCurrentSlotOfID(LocalTransaction.java:391)
	at com.db4o.internal.LocalObjectContainer.readReaderOrWriterByID(LocalObjectContainer.java:464)
	at com.db4o.internal.LocalObjectContainer.readReaderByID(LocalObjectContainer.java:440)
	at com.db4o.internal.LocalObjectContainer.readReaderByID(LocalObjectContainer.java:444)
	at com.db4o.internal.PersistentBase.read(PersistentBase.java:88)
	at com.db4o.internal.LocalObjectContainer.readThis(LocalObjectContainer.java:506)
	at com.db4o.internal.IoAdaptedObjectContainer.openImpl(IoAdaptedObjectContainer.java:62)
	at com.db4o.internal.PartialObjectContainer.open(PartialObjectContainer.java:124)
	at com.db4o.internal.IoAdaptedObjectContainer.<init>(IoAdaptedObjectContainer.java:35)
	at com.db4o.internal.ObjectContainerFactory.openObjectContainer(ObjectContainerFactory.java:23)
	at com.db4o.Db4o.openFile(Db4o.java:251)
	at com.db4o.Db4o.openFile(Db4o.java:217)
	at db.DB.resetDB(DB.java:53)
	at view.listener.MenuButtonListener.changeTrichter(MenuButtonListener.java:156)
	at view.listener.MenuButtonListener.actionPerformed(MenuButtonListener.java:84)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

edit:
erstmal...wenn auch an letzter stelle, vielen dank für die prompte antwort und auf alle Fälle die richtige Richtung!
 
Zuletzt bearbeitet:
hast du auf Windows und Mac Seite die gleiche db4o Version ?

Guten Morgen,

jepp.
keine Ahnung welche JVM´s dort genutzt werden...wir haben Hinweise, bzw. Links bereitgestellt.

Aber das Problem wird das Encoding sein. Denn auf der Mac-Version, als auch auf Windows funktioniert das kleine Programm ja...nur das "Austauschen" der datenbank(-Tabelle) klappt zwischen Mac und Win nicht.
 
Zurück