Chipkartenleser wird mit Oracle Java8 nicht erkannt

 
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 49
Dabei seit: 08 / 2009
Betreff:

Chipkartenleser wird mit Oracle Java8 nicht erkannt

 · 
Gepostet: 09.05.2016 - 11:06 Uhr  ·  #1
Hallo Leute,

wie im Titel schon zu lesen, bin ich auf ein mittleres Problem beim umstellen des Hibiscus Scripting-Supports auf Version 3 gestoßen.
Wenn ich das empfohlene Oracle-Java8 installiere, kann ich zwar meine Kreditkarten endlich wieder abrufen, aber meiner Reiner-SCT cyberJack wird plötzlich nicht mehr erkannt.
Zur Probe deinstallierte ich das Oracle Java noch einmal und siehe da - der Kartenleser lief wieder in Hibiscus. :o (pcsc_scan fand den Kartenleser auch mit installiertem Oracle Java)
Ich bin mit LinuxMint 17.3, 64bit unterwegs, welches standardmäßig OpenJDK installiert.
Muss ich das deinstallieren?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10130
Dabei seit: 03 / 2005
Betreff:

Re: Chipkartenleser wird mit Oracle Java8 nicht erkannt

 · 
Gepostet: 09.05.2016 - 23:04 Uhr  ·  #2
Ich weiss nicht, in welcher Form bei Mint-Linux Java paketiert ist. Aber ich koennte mir vorstellen, dass bei dem Java 8 einfach die Unterstuetzung fuer die Chipkarten-API nicht mit installiert wurde. Du kannst ja mal in deinem Paketmanager schauen - vielleicht gibt es ja fuer JDK8 noch ein paar zusaetzliche Pakete, die das nachliefern. Ich wuesste sonst keinen Grund, warum das in Java 8 nicht gehen sollte.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 49
Dabei seit: 08 / 2009
Betreff:

Re: Chipkartenleser wird mit Oracle Java8 nicht erkannt

 · 
Gepostet: 10.05.2016 - 18:29 Uhr  ·  #3
Da Mint auf Ubuntu basiert, konnte ich das im Scripting-Forum unter Tips&Tricks erwähnte ppa einbinden und die 3 oracle-java8 Pakete installieren. Also sollte doch -theoretisch- alles so sein, wie gedacht?
Und wonach müsste ich dann genau suchen?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10130
Dabei seit: 03 / 2005
Betreff:

Re: Chipkartenleser wird mit Oracle Java8 nicht erkannt

 · 
Gepostet: 11.05.2016 - 09:27 Uhr  ·  #4
Zitat geschrieben von Peter Pan

Da Mint auf Ubuntu basiert, konnte ich das im Scripting-Forum unter Tips&Tricks erwähnte ppa einbinden und die 3 oracle-java8 Pakete installieren. Also sollte doch -theoretisch- alles so sein, wie gedacht?
Und wonach müsste ich dann genau suchen?


Das weiss ich ja eben auch nicht. Deswegen schrieb ich auch nichts konkretes. Weil ich nicht weiss, wie Java bei Mint paketiert ist. Suche doch mal in deinem Paketmanager nach "Java" und "pcsc" und schau, ob da irgendwelche Pakete nicht installiert sind, deren Name so klingt, als haetten die was damit zu tun.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 2
Dabei seit: 06 / 2011
Betreff:

Re: Chipkartenleser wird mit Oracle Java8 nicht erkannt

 · 
Gepostet: 11.05.2016 - 23:40 Uhr  ·  #5
Ich kann das Problem nur bestätigen.
Ich selbst nutze Mint 17.1 und mit dem serienmäßigem OpenJDK7 lief der Leser (ReinerSCT).

Die Installationsroutine für Oracle-Java8 bzw. Oracle-Java7 (gehen beide nicht), lädt im wesentlichen eine Datei von http://download.oracle.com/otn…x64.tar.gz herunter.
Die wird dann entpackt und verlinkt.

D.h. es ist das Original Java.



Gemäß Oracle werden die Bibliotheken in bestimmten Ordnern gesucht. Das Paket libpcsclite-dev, das ja mal im Rahmen der Jameica Installation installiert wurde legt seine Bibliotheken aber woanders ab (/usr/lib/x86_64-linux-gnu/libpcsclite.so).
Ergo habe ich jetzt die Lösung von der Oracle Seite gebaut und meine jameica.sh angepasst.
Code
diff jameica.sh jameica.sh.old 
17c17
<  then LIBOVERLAY_SCROLLBAR=0 GDK_NATIVE_WINDOWS=1 SWT_GTK3=0 java -Dsun.security.smartcardio.library=/usr/lib/x86_64-linux-gnu/libpcsclite.so -Djava.net.preferIPv4Stack=true -Xmx512m $_JCONSOLE -jar jameica-linux64.jar $@
---
>  then LIBOVERLAY_SCROLLBAR=0 GDK_NATIVE_WINDOWS=1 SWT_GTK3=0 java -Djava.net.preferIPv4Stack=true -Xmx512m $_JCONSOLE -jar jameica-linux64.jar $@


Ich bin mir jetzt nicht sicher auf welcher Seite der Fehler liegt und wer es dauerhaft fixen könnte.
Bei mir läuft es so auf jeden Fall. :D

Viel Spaß und Danke für Jameica/Hibiskus :-)
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10130
Dabei seit: 03 / 2005
Betreff:

Re: Chipkartenleser wird mit Oracle Java8 nicht erkannt

 · 
Gepostet: 12.05.2016 - 07:42 Uhr  ·  #6
Das war die Ursache? Schau mal im Wiki unter http://www.willuhn.de/wiki/dok…lichkeit_2
Da ist genau das schon beschrieben.
Ich kann den Pfad aber nicht pauschal in jameica.sh aufnehmen, weil der je nach Distribution unterschiedlich lauten kann.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 49
Dabei seit: 08 / 2009
Betreff:

Re: Chipkartenleser wird mit Oracle Java8 nicht erkannt

 · 
Gepostet: 12.05.2016 - 19:50 Uhr  ·  #7
Genau das war's!
Ich habe den Pfad angepasst in die erwähnte Config-Datei aus dem Jameica/Hibiscus Wiki eingetragen und schon läuft es. (Das hätte man wohl auch schon vorher lesen können, ich war nur ein wenig verwirrt wegen dieser anderen Java Version... O-) )
Übrigens liegt die libpcsclite.so.1 bei Mint 17.3,64bit unter /lib/x86_64-linux-gnu/.

Ich danke euch beiden! :D
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 2
Dabei seit: 06 / 2011
Betreff:

Re: Chipkartenleser wird mit Oracle Java8 nicht erkannt

 · 
Gepostet: 13.05.2016 - 07:33 Uhr  ·  #8
Ja, die Lösung ist tatsächlich beschrieben. Das Problem ist den Fehler zu erkennen. Das hätte man beim gründlichen Studium selbst herausfinden können.
Allerdings: kann man nicht eine schönere Fehlermeldung auswerfen als "Kartenleser nicht gefunden". Eine passende exception, wenn die Klasse nicht funktioniert, oder so.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 49
Dabei seit: 08 / 2009
Betreff:

Re: Chipkartenleser wird mit Oracle Java8 nicht erkannt

 · 
Gepostet: 13.05.2016 - 09:08 Uhr  ·  #9
Zitat geschrieben von schlaefrigeswiesel

Ja, die Lösung ist tatsächlich beschrieben. Das Problem ist den Fehler zu erkennen. Das hätte man beim gründlichen Studium selbst herausfinden können.
Allerdings: kann man nicht eine schönere Fehlermeldung auswerfen als "Kartenleser nicht gefunden". Eine passende exception, wenn die Klasse nicht funktioniert, oder so.

Das stimmt allerdings, dann könnte man der Sache auf alle Fälle schneller auf die Schliche kommen.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10130
Dabei seit: 03 / 2005
Betreff:

Re: Chipkartenleser wird mit Oracle Java8 nicht erkannt

 · 
Gepostet: 13.05.2016 - 09:16 Uhr  ·  #10
Zitat geschrieben von schlaefrigeswiesel

Ja, die Lösung ist tatsächlich beschrieben. Das Problem ist den Fehler zu erkennen. Das hätte man beim gründlichen Studium selbst herausfinden können.
Allerdings: kann man nicht eine schönere Fehlermeldung auswerfen als "Kartenleser nicht gefunden". Eine passende exception, wenn die Klasse nicht funktioniert, oder so.


Genau das geht aber eben nicht. Da ja eben kein Fehler auftritt. Das ist doch das eigentliche Problem!
Wenn Java den PCSC-Treiber nicht findet, fuehrt das zu folgender Situation: Hibiscus fragt Java: "Sag mir mal, welche Kartenleser du am Rechner siehst?" Und Java antwortet: "Ich sehe keine".
Wie soll Hibiscus denn da erkennen, dass das gar nicht stimmt sondern Java einfach nur blind ist, weil es den PCSC-Treiber nicht gefunden hat.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 49
Dabei seit: 08 / 2009
Betreff:

Re: Chipkartenleser wird mit Oracle Java8 nicht erkannt

 · 
Gepostet: 13.05.2016 - 09:27 Uhr  ·  #11
Zitat geschrieben von hibiscus

Genau das geht aber eben nicht. Da ja eben kein Fehler auftritt. Das ist doch das eigentliche Problem!
Wenn Java den PCSC-Treiber nicht findet, fuehrt das zu folgender Situation: Hibiscus fragt Java: "Sag mir mal, welche Kartenleser du am Rechner siehst?" Und Java antwortet: "Ich sehe keine".
Wie soll Hibiscus denn da erkennen, dass das gar nicht stimmt sondern Java einfach nur blind ist, weil es den PCSC-Treiber nicht gefunden hat.


Hmm, verzwickt. :-/
Beim Kartenlesertest abfragen ob überhaupt ein pcsc-Treiber gefunden wurde, würde ich als Nicht-Programmierer jetzt sagen. Aber wenn ich Dich richtig verstehe, scheint genau das nicht zu gehen.
Vielleicht reicht schon ein Hinweis, oder Link auf den Wiki Artikel?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10130
Dabei seit: 03 / 2005
Betreff:

Re: Chipkartenleser wird mit Oracle Java8 nicht erkannt

 · 
Gepostet: 13.05.2016 - 09:38 Uhr  ·  #12
Zitat geschrieben von Peter Pan

Beim Kartenlesertest abfragen ob überhaupt ein pcsc-Treiber gefunden wurde, würde ich als Nicht-Programmierer jetzt sagen. Aber wenn ich Dich richtig verstehe, scheint genau das nicht zu gehen.


Eben. Genau das geht nicht. Ich kann Java nur nach der Liste der erkannten Kartenleser fragen. Mehr nicht. Ob der Grund für "Ich sehe keine Kartenleser" nun ist, dass es den PCSC-Treiber nicht gefunden hat oder aber dass tatsaechlich kein Kartenleser vorhanden ist, kann ich in Hibiscus nicht unterscheiden.
Gewählte Zitate für Mehrfachzitierung:   0