Derby auf PocketPC

Vatar

Erfahrenes Mitglied
Hallöle
Nach einer kurzen Pause habe ich nun wieder Zeit an meiner Projektarbeit weiter zu arbeiten.
Thema: Derby auf einem PDA

Bisherige Umgebung:
  1. IDE: WebSphere Studio Device Developer
  2. IBMs J9 Laufzeitumgebung
  3. Derby.jar
  4. DerbyClient.jar
  5. OptionalJdbcPackage.jar (JSR 169) -> musste erst noch kompiliert werden und enthällt unter anderen java.sql.*

Die jars habe ich in den Bootclasspath gelegt (IBM Design für J9).

Ich habe schon mal einBeispiel im Netz gefunden, indem beschrieben wird wie die HSQLDB unter diesem Profil läuft. Komischerweise kann in diesem Tutorial die Methode
Java:
Class.forName("blablubb");
con = DriverManager.getConnection(URL)
benutzt werden. In meiner IDE kann ich genau diesen nicht nutzen, da der DriverManager gar nicht vorhanden ist!?

Versuche über ein EmbeddedSimpleDataSource oder den Driver169(speziell für JSR169 aber noch in Entwicklung) schlugen fehl. Ich bekomme immer eine ClassNotFoundException wenn die jars nur im BootClasspath liegen. Packe ich die jars zusätzlich zu den Benutzerklassen erhalte ich einen UnsupportedClassVersionError.

Kann mir jemand diesbezüglich weiterhelfen (relativ dringend)
 
Zuletzt bearbeitet von einem Moderator:
Hallo!

Versuche über ein EmbeddedSimpleDataSource oder den Driver169(speziell für JSR169 aber noch in Entwicklung) schlugen fehl. Ich bekomme immer eine ClassNotFoundException wenn die jars nur im BootClasspath liegen. Packe ich die jars zusätzlich zu den Benutzerklassen erhalte ich einen UnsupportedClassVersionError.
Die Derby Klassen die man von http://db.apache.org/derby/releases/release-10.1.3.1.cgi beziehen kann weisen die ClassVersion 46 aus. Das heißt, dass sie mit kompatibilität für Java 1.2 kompiliert wurden. Eventuell müsst du die Derby Klassen mit einer anderen Target Option Kompilieren. Zieh doch einfach mal die derby sourcen in dein J9 Projekt rein und lass es vom Eclipse kompiler (mit den entsprechenden) Einstellungen kompilieren, dann sollte es laufen. (In der Source Distribution, gibts sicherlich auch einen Ant Build dem du die entsprechenden Optionen geben könntest)

Gruß Tom
 
Schon einmal Danke

Mit ant habe ich noch ein paar Probleme. Nachdem er keinen modern oder classic Compiler gefunden hat habe ich diesen in den Properties auf extJavac geändert. Nun bekomme ich aber folgende Fehlermeldung
Java:
 Fatal Error: Unable to find package java.lang in classpath or bootclasspath
BUILD FAILED: file:C:/Programme/IBM/DeviceDeveloper5.6/workspace/Derby-SRC/java/engine/org/apache/derby/iapi/reference/build.xml:32: Compile failed; see the compiler error output for details.
 
Zuletzt bearbeitet von einem Moderator:
Ich komme einfach nicht weiter (habs auch schon in einem anderen Forum probiert *schäm* ^^). Habe inzwischen alle Pfade auf Java 1.3 umgestellt. Stelle ich den javac-task auf verbose="true" so sehe ich dass die ersten 9 Klassen in dem ordner java/engine/org/apache/derby/iapi/reference kompiliert werden, aber dann taucht immer diese Fehlermeldung auf? Ich halte mich auch an die build-Anleitung (BUILDING.txt).

EDIT: Bin einen Schritt weiter gekommen. In compilepath.properties habe ich den Pfad zum Java1.3 direkt gesetzt und nich über JAVA_HOME
Code:
j13lib=C\:\\Programme\\Java\\jdk1.3.1_18\\jre\\lib
(wie zu sehen musste ich auch ':' escapen). Jetzt kompiliert er mir die Ersten Klassen, nur die Klassen JDBC20Translation und JDBC30Translation.java macht er nicht (selbe Fehlermeldung wie oben).
Muss ich hier noch irgend ein extra jar-File einbinden?
 
Zuletzt bearbeitet:
Wieder ein Schritt weiter, aber das Problem besteht noch.

Also: Die Derby-Sourcen werden hauptsächlich mit Java 1.3 kompiliert nur einige spezielle Klassen mit 1.4 (unter anderem die oben genannten). Dazu enthalten die verschiedenen build.xml(s) in ihren compile-targest zwei javac-tasks. Einmal mit Verweis auf 1.3 und einmal auf 1.4.
Mein Problem für den PDA ist ja nun aber dass ich die Derby in 1.3er Version brauche sonst kommt dieser UnsupportedClassVersionError.
Inzwischen habe ich aber erst einmal alle JDKs installiert um die Sourcen überhaupt erst einmal kompilieren zu können (Anpassen kann ich es ja dann noch später). Nachdem ich alle JDKs installiert habe (1.3.1_18, 1.4.2_12 und die 5er) kommt bei den 1.4er Klassen aber wieder eine Meldung dass die Version nicht passt
Java:
 class file has wrong version 48.0, should be 47.0
?
Welche 1.4er brauch ich denn nun? Und vor allem wo bekomm ich die älteren überhaupt her?

Thx
 
Zurück