我已经做了几天的研究,这是我的最后一颗子弹,希望你们能帮助我。
我基本上是在尝试在 Oracle 12c 关系数据库中创建一个指向我的 Oracle NoSQL 数据库表的外部表。我正在按照本教程进行操作。一切都很顺利,直到第 4 点,您使用一些库生成“.dat”文件。我对自己的数据有自己的案例,但您可以在此处查看该过程的完整示例。
执行以下命令时,我面临的问题是:
java -cp ./lib/kvstore-ee.jar:./lib/ojdbc6.jar oracle.kv.exttab.Publish -config ./exttab/nueva.xml -publish -verbose
这导致我出现以下错误:
Picked up _JAVA_OPTIONS: -Djava.security.egd=file:/dev/./urandom
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/kv/KVStoreException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: oracle.kv.KVStoreException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
现在我继续我试图遵循的事情来解决这个问题:
- 不同的JDK版本
- 所涉及的 .jar 文件的不同版本。
- 将文件切换到父目录
- 从不同的目录执行命令。
- 手工检查所涉及的类中的代码,看是否与Oracle提供的原始代码不同
在这一点上,我不知道是我做错了什么还是环境本身有问题。我只需要能够执行它来生成“.dat”文件,但我找不到方法。我在这里留下一些信息以防有帮助:
环境。我正在使用带有 Oracle NoSQL 发行版的 Docker 容器。在这个环境中,我安装了这个 jdk 版本:
- java 版本“1.8.0_73”Java(TM) SE 运行时环境(构建 1.8.0_73-b02)Java HotSpot(TM) 64 位服务器 VM(构建 25.73-b02,混合模式)
我在命令中提到的路径中有所有必需的 jar 文件,当然还有 XML 文件。我还可以为您提供环境变量、配置文件的代码或基本上您需要的任何东西,但我现在迷路了。提前致谢。