# NullPointerException auf 1nem Rechner von 2



## cheeses (15. Feb 2021)

Hallo, wir haben eine Datenbank die unsere gesamten Fräsprogramme verwaltet. Diese läuft unter Java.

Nähere Problembeschreibung:
Das Programm startet zwar mit der Maske, ist aber nicht „ausgefüllt“. Versuche ich etwas zu suchen oder einzugeben erhalte ich immer den Fehler: „java.lang.NullPointerException“

Wir haben vorab 1nen neuen Rechner mit Win10 hergerichtet. Da hier unsere gesamten benötigten Programme liefen, haben wir die weiteren 5Rechner jetzt bekommen.
Jetzt habe ich auf den 1.Rechner von den 5 neuen die benötigten Programme aufgespielt, jedoch unsere Datenbank läuft nicht!! Ich bin nur User, doch auf unser Admin hat keine Lösung. Wir sind ein mittelständiger Betrieb und die Datenbank wurde von einem Externen Programmierer extra für uns gestrickt. Diesen können wir jedoch nicht kontaktieren, da er plötzlich verstorben ist. Daher (ich glaube Quellcode nennt man das) kein zugriff auf die Programmierung.

Die Datenbank verwaltet ca.30.000 Fräsprogramme und ist für uns Essenziell!!

Die Java-Version habe ich extra kontrolliert, sie ist ident. mit dem funktionierenden Rechner. Freigaben, Sicherheitseinstellungen etc. sind nach meinem begrenzten Wissen gleich. Ebenfalls ältere, andere Java-Version aufgespielt.... Sämtliche Foren habe ich schon durchsucht > Lösungen keine gefunden!
Daher kann uns jemand HELFEN??


----------



## LimDul (15. Feb 2021)

Die Chancen, dass man da was tun kann, sind sehr gering.

Grundsätzlich wäre die volle Meldung, sofern vorhanden, hilfreich (Der Stacktrace). Dazu ggf. dass Programm mal über die Eingabeaufforderung starten. Mit Etwas Glück steht da was von einem Pfad, auf den das Programm zugreift drin. Vielleicht fehlt da was.


----------



## kneitzel (15. Feb 2021)

Das wird schwierig. die Problemdetails (Also ganzen  Exception Stack) wären interessant. Ebenso den generellen Aufbau (Wo liegt die Datenbank und in welchem Format liegt diese vor?)

Die Hoffnung wäre, dass man heraus bekommt, was der Applikation ggf fehlt (Pfade, Konfigurationsdatei, ...)


----------



## cheeses (15. Feb 2021)

Habe es gerade probiert. Hier startet zwar das Programm und ich sehe die Menüleiste jedoch die Maskenfelder sind nicht zu sehen. Normalerweise sollte es so aussehen

Die Dateispeicherorte sind


----------



## LimDul (15. Feb 2021)

Anstelle das per Doppelklick zu starten, startet es mal von der Eingabeaufforderung:

java -jar Start.jar in dem Verzeichnis. Dann kommen hoffentlich mehr Infos.


----------



## kneitzel (15. Feb 2021)

Das hilft uns noch nicht wirklich ... Wir benötigen die genaue Fehlermeldung incl. dem sogenannten Stacktrace.

Da sind Logdateien (hs_err_pid*.log) - was steht denn da an Details drin? Da mal rein geschaut?


----------



## cheeses (15. Feb 2021)

Wenn ich es aus dem Verzeichnis starte passiert das selbe wie mit meinem Desktopsymbol. Keine Fehlermeldung...

Habe mal die größte .log aufgemacht - aber das sind "böhmishe-Dörfer" für mich. 
Angehängt, vielleicht könnt Ihr da was rauslesen.

Ach ja, programmiert wurde die Datenbank für WinXP und lief auch auf Win7. Habe also auch die Kompatiblitätsansich schon probiert....
(Ich parametrisiere Euch eine Dialog-Steuerung (Fräsmaschine) aber das überfordert mich. )


----------



## cheeses (15. Feb 2021)

Habe mir AnyDesk runtergeladen - Sag mir wie´s weiter geht.. 😊


----------



## kneitzel (15. Feb 2021)

Ok, das bringt schon einmal etwas. Das Problem scheint eine JDBC zu ODBC Schnittstelle zu sein.

Mal auf beiden Rechnern das Startmenü öffnen und odbc eingeben. Da sollte dann das ODBC Data Sources oder so ähnlich geöffnet werden ...
Das ist einfach ein kleines Fenster - da mal die Einträge vergleichen! Vermutlich fehlt da einfach nur der Eintrag für die Datenbank.

Ansonsten habe ich das nur für 32Bit. Bitte mal auf der Kommandozeile bei beiden Rechnern 
java -version
eingeben und die Antwort vergleichen. Evtl. ist auf einem Rechner die 32Bit Java Version in Benutzung... Nur so als Idee ...

Bezüglich Remote Sitzung komme ich im Gespräch auf Dich zu - ich will mir da erst selbst noch diese jdbc-odbc Bridge ansehen.


----------



## kneitzel (15. Feb 2021)

kneitzel hat gesagt.:


> Ansonsten habe ich das nur für 32Bit. Bitte mal auf der Kommandozeile bei beiden Rechnern
> java -version
> eingeben und die Antwort vergleichen. Evtl. ist auf einem Rechner die 32Bit Java Version in Benutzung... Nur so als Idee ...


Die Idee kannst Du vergessen - steht ja auch in dem geteilten Log: Du hast ein 32Bit Java - daher ist der Punkt ausgeschlossen. Bleibt aber diese ODBC Konfiguration.


----------



## kneitzel (15. Feb 2021)

Und bezüglich ODBC einfach einmal paar Bildscirmfotos:

Die wichtigen Tabs sind Benutzer-DSN und System-DSN.
Bei dem unteren Kästchen die Meldung beachten! Auf meinem Rechner habe ich z.B. ein 64Bit MS Office - daher  kann dieser 32Bit Zugriff nicht funktionieren. Sollte sowas bei euch auch da stehen und Office als Datenbank zum Einsatz kommen (Also Access, Excel, ...), dann muss hier ggf. auch MS Office deinstalliert und die 32Bit Version installiert werden. 

Meine Erwartungshaltung ist, dass ihr einen Eintrag auf dem Rechner habt, der funktioniert. Genau so einen Eintrag müsst ihr dann auch erstellen.

Wenn man den Eintrag markiert und dann die Eigenschaften auswählt, dann kommt so eine Konfiguration. Die ist natürlich von Treiber zu Treiber unterschiedlich. Der Name der Datenquelle muss identisch geschrieben sein. Beschreibung ist egal ... Und die Datenquelle muss natürlich ausgewählt worden sein...

Das einfach einmal als Hinweis zum selbst prüfen ehe es zu einem Call zwischen uns kommt.


----------



## cheeses (15. Feb 2021)

Ha!  da könnte der Hase im Pfeffer liegen

Weiter traue ich mich nicht so wirklich, vermutlich kann ich mich da mit einer falschen Eingabe ziemlich lahm legen...


----------



## kneitzel (15. Feb 2021)

Also Du kannst Da nichts kaputt machen - Wichtig ist nur: Auf dem funktionierenden Rechner machst Du nichts, das Du mit OK bestätigst. Da gehst Du immer mit Abbrechen zurück. Du kannst aber so Elemente auswählen und dann auf Eigenschaften klicken um diese zu vergleichen.

Und dann musst Du vergleichen: Ist das der funktionierende Rechner? Wie sieht es beim nicht funktionierenden Rechner aus?
Also was ich dem entnehmen kann: Neben dem 64Bit Office ist auch eine 32Bit Access Runtime installiert.
==> Ist die auch auf dem nicht funktionierendem Rechner installiert?

Wenn das fehlt, dann prüfen, was da installiert wurde auf dem funktionierenden Rechner (Zur Not einfach schauen, was beim anderen PC installiert wurde)
a) Microsoft Access Database Engine sein. Es gibt diverse Versionen, z.B. für 2010: https://www.microsoft.com/de-de/download/details.aspx?id=13255
Der Installer wäre dann eine AccessDatabaseEngine.exe ...
b) MDAC (Microsoft Data Access Components) - die umfassen deutlich mehr als ODBC. Da wäre der Installer in der Regel ein mdacXY.exe mit xy eine Version also z.B. mdac28.exe)

Wenn der andere Rechner vor kurzem Aufgebaut wurde, dann hat man da evtl. noch die verwendeten Dateien, so dass man einfach auf die entsprechenden Dateien zurückgreifen kann.


----------



## cheeses (15. Feb 2021)

Uff bin da an meiner Grenze. Jedenfalls ist auf dem funktionierenden Rechner die "Microsoft Access-Datenbanken" mit 32-Bit nicht drauf!! Siehe dieses Bild
 Kann ich die dann auf meinem (NICHT funktionierenden Rechner - siehe vorheriges Bild) einfach "Entfernen"??
Ich weiss ich frage ziemlich bescheiden, doch ich gebe schon mein Bestes..


----------



## kneitzel (15. Feb 2021)

Also wenn es auf dem funktionierenden Rechner nicht ist, dann wird es nicht gebraucht. Aber die reine Installation dieser Komponente sollte eigentlich keine Auswirkungen haben.

Ggf. doch einmal das "java -version" auf beiden Rechnern in einer Eingabeaufforderung zum Vergleich ausführen.


----------



## M.L. (15. Feb 2021)

Für später -also nach der durchgängigen Migration _aller_ beteiligten Komponenten auf 64-Bit- *könnte* man auch die Verwendung eines alternativen DB-Systems (erstmal als Reserve) angehen, z.B. von Access auf MS SQL Server.


----------



## mihe7 (16. Feb 2021)

cheeses hat gesagt.:


> Jedenfalls ist auf dem funktionierenden Rechner die "Microsoft Access-Datenbanken" mit 32-Bit nicht drauf!! Siehe dieses Bild


Schau auch mal unter System-DSN und insbesondere unter Treiber nach.


----------



## kneitzel (16. Feb 2021)

Zwei Punkte wurden ausgemacht (nur als kleine Zusammenfassung, falls bei weiteren Rechnern erneut Unterstützung benötigt wird):
a) Java muss in der 32Bit Version installiert werden und das muss zwingend die richtige Java Version sein! (Also z.B. ein 6er OpenJDK bringt Serialisierungsfehler, da u.a. JComponent serialisiert wurden und dann die serialVersionUID nicht stimmt.)
b) In den ODBC Settings muss die Access Datenbank mit richtigem Pfad eingebunden werden. (Über die ODBC Systemsteuerung mdb Datei auf Netzlaufwerk auswählen).

Und Verwendung fand die alte JDBCODBC Bridge, die mit Java 8 entfernt wurde.


----------



## cheeses (16. Feb 2021)

Nochmal schriftlich auch im Namen meines Chefs:   DU BIST UNSER HELD DES TAGES!!!

Vielen vielen Dank für die engagierte und kompetente Hilfe!!!!!!!!!!!!!!😊👍👍🧙‍♂️


----------



## mihe7 (16. Feb 2021)

cheeses hat gesagt.:


> Nochmal schriftlich auch im Namen meines Chefs: DU BIST UNSER HELD DES TAGES!!!


@kneitzel, da hast Du Dir ein Bier verdient  

@cheeses, Java 1.6, ODBC, Access-DB, kein Quellcode, ... das könnte man schon als grob fahrlässig bezeichnen. Ihr solltet dringend mal über eine "Weiterentwicklung" nachdenken.


----------

