On Fri, Mar 05, 2021 at 11:31:06AM +0200, Wouter Verhelst wrote:
> On Sun, Feb 28, 2021 at 10:43:50AM +0100, Geert Stappers wrote:
> > 
> > Hoi,
> > 
> > Bij het uitvoeren  van `javaws launch.jnlp` krijg ik
> >   Exception in thread "AWT-EventQueue-1"
> >   javax.xml.parsers.FactoryConfigurationError: Provider for class
> >   javax.xml.parsers.DocumentBuilderFactory cannot be created
> > en een java stack trace.
> 
> Die stack trace is geen nutteloze informatie. Mogelijk staat er
> informatie in die zou kunnen helpen met uitvissen waarom de
> DocumentBuilderFactory niet gemaakt kan worden.

Dit bericht heeft wel een stack trace.

 
> > Ik denk dat JAVA_HOME gezet moet worden.
> 
> Dat zou niet nodig mogen zijn.
> 
> Wel is het mogelijk dat je een andere JVM nodig hebt dan degene die je
> geïnstalleerd hebt.

Dat zou er ook aan de hand kunnen zijn.

 
> > Ik weet echter niet met welke waarde.
> > 
> > Dit is er aan "java" ge-installeerd:
> > 
> > $ LANG=C apt search java | grep -i install | grep -e ^icedtea -e ^java -e 
> > ^openjdk |grep -v ^lib
> > 
> > WARNING: apt does not have a stable CLI interface. Use with caution in 
> > scripts.
> > 
> > icedtea-netx/unstable,now 1.8.4-1 all [installed]

> > openjdk-10-jre/now 10.0.1+10-4 amd64 [installed,local]
> > openjdk-11-jre/unstable,now 11.0.11+4-1 amd64 [installed,automatic]
> > openjdk-17-jre/unstable,now 17~11-1 amd64 [installed,automatic]
> > openjdk-8-jre/now 8u275-b01-1 amd64 [installed,local]
> 
> OK, je hebt dus 4 JVMs geïnstalleerd staan: JDK8, 10, 11, en 17.
> 
> wat zegt
> 
> update-alternatives --display java
> 
> ? Dat toont je welke JVM actief is.


$ LANG=C update-alternatives --display java
java - auto mode
  link best version is /usr/lib/jvm/java-17-openjdk-amd64/bin/java
  link currently points to /usr/lib/jvm/java-17-openjdk-amd64/bin/java
  link java is /usr/bin/java
  slave java.1.gz is /usr/share/man/man1/java.1.gz
/usr/lib/jvm/java-10-openjdk-amd64/bin/java - priority 1101
  slave java.1.gz: /usr/lib/jvm/java-10-openjdk-amd64/man/man1/java.1.gz
/usr/lib/jvm/java-11-openjdk-amd64/bin/java - priority 1111
  slave java.1.gz: /usr/lib/jvm/java-11-openjdk-amd64/man/man1/java.1.gz
/usr/lib/jvm/java-17-openjdk-amd64/bin/java - priority 1711
  slave java.1.gz: /usr/lib/jvm/java-17-openjdk-amd64/man/man1/java.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java - priority 1081
  slave java.1.gz: /usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz


> Op een Debian-systeem hoort JAVA_HOME te verwijzen naar
> /usr/lib/jvm/default-java, wat een symlink is naar één van de
> geïnstalleerde JVMs. Je kan de te gebruiken JVM selecteren via
> /usr/sbin/update-java-alternatives -- wat een wrapper rond de gewone
> "update-alternatives" is, en ook de default-java symlink en een paar
> andere dingen beheert.

Dat heb ik omgezet naar "Linux commandos"

$ ls -l /usr/lib/jvm/default-java
lrwxrwxrwx 1 root root 25 28 okt  2018 /usr/lib/jvm/default-java -> 
java-1.11.0-openjdk-amd64
$ sudo /usr/sbin/update-java-alternatives 
usage: update-java-alternatives [--jre-headless] [--jre] [--plugin] 
[-v|--verbose]
           -l|--list [<jname>]
           -s|--set <jname>
           -a|--auto
           -h|-?|--help
$ sudo /usr/sbin/update-java-alternatives --list
java-1.10.0-openjdk-amd64      1101       /usr/lib/jvm/java-1.10.0-openjdk-amd64
java-1.11.0-openjdk-amd64      1111       /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.17.0-openjdk-amd64      1711       /usr/lib/jvm/java-1.17.0-openjdk-amd64
java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64
$ sudo /usr/sbin/update-java-alternatives --set java-1.17.0-openjdk-amd64
Er is geen programma dat clhsdb voorziet.
update-alternatives: fout: geen alternatieven voor extcheck
Er is geen programma dat hsdb voorziet.
update-alternatives: fout: geen alternatieven voor javah
update-alternatives: fout: geen alternatieven voor jhat
update-alternatives: fout: geen alternatieven voor jsadebugd
update-alternatives: fout: geen alternatieven voor mozilla-javaplugin.so
update-alternatives: fout: geen alternatieven voor native2ascii
$ ls -l /usr/lib/jvm/default-java
lrwxrwxrwx 1 root root 25 28 okt  2018 /usr/lib/jvm/default-java -> 
java-1.11.0-openjdk-amd64
$ 


Iets waar ik een nachtje over ga slapen ...



Groeten
Geert Stappers
-- 
Silence is hard to parse
$ javaws launch.jnlp
Codebase matches codebase manifest attribute, and application is signed. 
Continuing. See: 
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html
 for details.
Starting application [tw.com.aten.ikvm.KVMMain] ...
Buf size:425984
Exception in thread "AWT-EventQueue-1" 
javax.xml.parsers.FactoryConfigurationError: Provider for class 
javax.xml.parsers.DocumentBuilderFactory cannot be created
        at 
java.xml/javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:305)
        at java.xml/javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:261)
        at 
java.xml/javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:140)
        at 
java.prefs/java.util.prefs.XmlSupport.loadPrefsDoc(XmlSupport.java:243)
        at java.prefs/java.util.prefs.XmlSupport.importMap(XmlSupport.java:376)
        at 
java.prefs/java.util.prefs.FileSystemPreferences$6.run(FileSystemPreferences.java:594)
        at 
java.prefs/java.util.prefs.FileSystemPreferences$6.run(FileSystemPreferences.java:587)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at 
java.prefs/java.util.prefs.FileSystemPreferences.loadCache(FileSystemPreferences.java:586)
        at 
java.prefs/java.util.prefs.FileSystemPreferences.initCacheIfNecessary(FileSystemPreferences.java:569)
        at 
java.prefs/java.util.prefs.FileSystemPreferences.getSpi(FileSystemPreferences.java:546)
        at 
java.prefs/java.util.prefs.AbstractPreferences.get(AbstractPreferences.java:303)
        at 
java.prefs/java.util.prefs.AbstractPreferences.getInt(AbstractPreferences.java:411)
        at tw.com.aten.ikvm.ui.RemoteVideo.loadHotKey(Unknown Source)
        at tw.com.aten.ikvm.ui.RemoteVideo.<init>(Unknown Source)
        at tw.com.aten.ikvm.ui.Viewer.<init>(Unknown Source)
        at tw.com.aten.ikvm.KVMMain.run(Unknown Source)
        at 
java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
        at 
java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at 
java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
        at 
java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at 
java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at 
java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at 
java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at 
java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at 
java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.RuntimeException: Provider for class 
javax.xml.parsers.DocumentBuilderFactory cannot be created
        at 
java.xml/javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:302)
        ... 29 more
Caused by: java.util.ServiceConfigurationError: 
javax.xml.parsers.DocumentBuilderFactory: Provider 
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found
        at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:589)
        at 
java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1212)
        at 
java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1221)
        at 
java.base/java.util.ServiceLoader$LazyClassPathLookupIterator$1.run(ServiceLoader.java:1268)
        at 
java.base/java.util.ServiceLoader$LazyClassPathLookupIterator$1.run(ServiceLoader.java:1267)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at 
java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1270)
        at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1300)
        at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1385)
        at 
java.xml/javax.xml.parsers.FactoryFinder$1.run(FactoryFinder.java:287)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at 
java.xml/javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:283)
        ... 29 more

Antwoord per e-mail aan