basex 独立版未运行 18.04

basex 独立版未运行 18.04

我想使用 basex 对 xml 文件执行 xquery 操作,因为它看起来比基于“查询字符串”的过滤更“透明”。

我在运行 Ubuntu 18.04 的 PC 上安装了 basex(使用 APT)。

然后我开始运行手册

嗯, sudo apt-get install basex 没有安装所有需要的东西(tagsoup.jar、、xml-resolver.jarjing.jar)。

我似乎通过安装 tagsoup 和 jing 的库找到了那些丢失的文件……至少警告信息停止了。

但是basex并不在独立模式下运行,如下:

$ 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)

有什么指导吗?

答案1

我在 18.04 上运行了这个,对于缺少的 3 个 jar 文件,出现了同样的错误。
我手动安装了以下每个.jar文件,一切运行正常。

xml-resolver-1.2.jar
tagsoup-1.2.1.jar
jing.jar (11/11/09)

答案2

根本原因是 jline 是针对 jdk9 编译的。详细解释可在此处找到mongo db 票证

因此使用 jdk 9 运行 basex 应该没问题。

相关内容