Re: JAVA_HOME voor javaws
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
Reply to: