J'aimerais utiliser basex pour effectuer des opérations xquery sur des fichiers xml, car il semble être plus "transparent" que le filtrage basé sur "chaîne de requête".
J'ai installé basex (en utilisant APT) sur un PC sous Ubuntu 18.04.
J'ai ensuite commencé à parcourir les exemples fournis dans le manuel
Eh bien, Sudo apt-get install basex
n’a pas tout installé (tagsoup.jar
, xml-resolver.jar
et jing.jar
).
Il me semble avoir trouvé ces fichiers manquants en installant des bibliothèques pour tagsoup et jing ... au moins, les messages d'avertissement se sont arrêtés.
Mais basex ne s'exécute pas en mode autonome, comme suit:
$ basex
BaseX 8.5.1 [Standalone]
Try 'help' to get more information.
Exception in thread "main" Java.lang.NoSuchMethodError: Java.nio.ByteBuffer.limit(I)Ljava/nio/ByteBuffer;
at jline.internal.InputStreamReader.<init>(InputStreamReader.Java:104)
at jline.console.ConsoleReader.setInput(ConsoleReader.Java:330)
at jline.console.ConsoleReader.<init>(ConsoleReader.Java:248)
at jline.console.ConsoleReader.<init>(ConsoleReader.Java:236)
at jline.console.ConsoleReader.<init>(ConsoleReader.Java:224)
at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at Sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.Java:62)
at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.Java:45)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:423)
at Java.lang.Class.newInstance(Class.Java:442)
at org.basex.util.ConsoleReader$JLineConsoleReader.<init>(ConsoleReader.Java:152)
at org.basex.util.ConsoleReader.get(ConsoleReader.Java:61)
at org.basex.BaseX.console(BaseX.Java:180)
at org.basex.BaseX.<init>(BaseX.Java:166)
Des conseils?
J'ai cette exécution sur 18.04 et avait les mêmes erreurs pour les 3 fichiers jar manquants.
J'ai installé manuellement chacun des fichiers .jar
suivants et tout fonctionne correctement.
xml-resolver-1.2.jar
tagsoup-1.2.1.jar
jing.jar (11/11/09)
La cause fondamentale provient du fait que jline a été compilé avec jdk9. Des explications détaillées sont disponibles sur ce ticket mongo db .
Donc, exécuter basex avec jdk 9 devrait être correct.