Debian 10, Ubuntu 18.04 a DSigner

Zdravím,

včera som dobojoval s DSignerom a javaws v Debian 10.
Možno to nie je najelegantnejši workaround, ale funguje. Feel free modify a zlepšiť.

Problémom je, že Debian 10 má default java verziu 11 a DSigner pouziva JAXB (Java Architecture for XML Binding). JAXB ale uz nie je sucastou java 11 a preto DSigner spadne na java.lang.ClassNotFoundException: javax.xml.bind.JAXBException.

Čo s tým?
Treba nainštalovať
openjdk-8-jre, openjdk-8-jre-headless a
icedtea-netx:amd64 verzie 1.6.2-3.1+deb9u1
icedtea-netx-common 1.6.2-3.1+deb9u1

problém je, že tieto verzie javy nie su v Bustery, takže som spravil nasledovné.
V /etc/apt/sources.list.d
som vytvoril súbor “stretch.list” ktorý obsahuje:
deb http://ftp.be.debian.org/debian/ stretch main contrib non-free

do /etc/apt/apt.conf.d som pridal súbor “99strech”, ktorý obsahuje
APT::Default-Release “buster”;

následne som odstránil icedtea-netx príkazom “apt remove icedtea-netx” a nainštaloval som spomínané balíky:
openjdk-8-jre, openjdk-8-jre-headless a
icedtea-netx:amd64 verzie 1.6.2-3.1+deb9u1
icedtea-netx-common 1.6.2-3.1+deb9u1

po tychto hackoch sa mi podarilo podať podpísaný formulár na finančnej správe.
Poznamka:
treba dávať pozor pri apt upgrade aby sa neupgradol icedtea-netx, a to sa spraví príkazom
echo “icedtea-netx hold” | dpkg --set-selections

2 Likes

Rovnaky problem je aj na ubuntu 18.04. Neslo podpisovat cez schranku. Dnes mi odpisali takyto manual

  1. Odstrániť novú verziu icedtea-netx (1.8)
    a. sudo dpkg –purge icedtea-netx-common
    b. sudo dpkg –purge icedtea-netx
  2. Stiahnuť starú verziu icedtea-netx (1.6.2) zo stránky http://archive.ubuntu.com/ubuntu/pool/universe/i/icedtea-web/?C=M;O=D
    • pre 64-bit systém: icedtea-netx_1.6.2-3.1ubuntu3_amd64.deb a icedtea-netx-common_1.6.2-3.1ubuntu3_all.deb
    • pre 32-bit systém: icedtea-netx_1.6.2-3.1ubuntu3_i386.deb a icedtea-netx-common_1.6.2-3.1ubuntu3_all.deb
  3. Nainštalovať oba balíky buď package managerom ktorý je súčasťou mnohých Linux distribúcií alebo pomocou príkazov:
    a. sudo dpkg -i icedtea-netx-common_1.6.2-3.1ubuntu3_all.deb
    b. sudo dpkg -i icedtea-netx_1.6.2-3.1ubuntu3_amd64.deb
    i. v prípade 32-bit systému sudo dpkg -i icedtea-netx_1.6.2-3.1ubuntu3_i386.deb
    Systém by si mal pri inštalácii sám dotiahnuť javu 1.8 ktorú icedtea-netx 1.6.2 potrebuje pre správne fungovanie

Tiez zafungovalo.

1 Like

Super, tak sa ucia a zobrali si informacie co som im napisal. Lebo mne posielali este iny “navod”:

Pre vyriešenie Vašej požiadavky ohľadom elektronického podpisovania Vás poprosíme o zaslanie výpisu z príkazového riadku:

1 - java -version
2 - javac -version
3 - javaws
4 - itweb-settings

Alebo môžete postupovať nasledovne:
1 - pomocou alternatives --config java nastaviť primárne /usr/java/jdk1.8.0_191/jre/bin/java
2 - pomocou alternatives --config javaws nastaviť primárne /usr/java/jdk1.8.0_191/jre/bin/javaws
3 - pomocou alternatives --config libjavaplugin.so.x86_64 (v prípade (64-bit)) primárne /usr/java/jdk1.8.0_191/jre/lib/amd64/libnpjp2.so
4 - pomocou alternatives --config libjavaplugin.so (v prípade (32-bit)) primárne /usr/java/jdk1.8.0_191/jre/lib/i386/libnpjp2.so

3 - odinštalovanie Oracle JDK (nahradiť version s číslom verzie ktorú používate napr.jdk1.8.0_191)

1 - $ sudo update-alternatives --remove “java” “/usr/lib/jvm/jdk[version]/bin/java”
2 - $ sudo update-alternatives --remove “javac” “/usr/lib/jvm/jdk[version]/bin/javac”
3 - $ sudo update-alternatives --remove “javaws” “/usr/lib/jvm/jdk[version]/jre/bin/javaws”

4 - odinštalovanie Openjdk

1 - $ sudo apt-get remove openjdk*
2 - $ sudo apt-get purge openjdk*

5 - odinštalovanie Openjdk (ak chcete odstrániť odstrániť závislosti a konfiguračné súbory )

1 - $ sudo apt-get purge --auto-remove openjdk*
2 - $ sudo apt-get remove --auto-remove openjdk*

6 - nainštalovanie Oracle Java, ktoré odporúčame používať namiesto OpenJDK

1 - $ sudo apt install oracle-java8-installer
2 - $ sudo apt install oracle-java8-set-default

2 Likes