java错误在windows上不会发生,但在ubuntu中会发生

watbbzwu  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(243)

我的公司正在转向使用ubuntu的目标架构;我们正在从windows迁移java应用程序。我们的第一个应用程序在ubuntu上遇到此错误(在win上运行良好):

Error: A JNI error has occurred, please check your installation and try again
 Exception in thread "main" java.lang.NoClassDefFoundError: > org/apache/cxf/jaxrs/lifecycle/ResourceProvider
    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:650)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:632)
 Caused by: java.lang.ClassNotFoundException: org.apache.cxf.jaxrs.lifecycle.ResourceProvider
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 7 more

这两个环境都运行Java1.8JDK/jre(不是ubuntu上的openjdk)。我们为git使用了一个内部的codecloud,所有内容都在win和ubuntu中更新。maven显示所有依赖项都已满足;我甚至可以扩展maven类,并可以看到resourceprovider类。
我读过spring和cxf的版本控制问题,但这是指cxf的版本比我们正在运行的版本旧,我没有看到任何东西表明为什么代码会在windows环境中运行,而不是在“nix环境”中运行。还有很多关于weblogic的讨论,我们在服务器端使用带有cxf的嵌入式jetty。这是一个独立的控制台应用程序,不使用容器,如果这很重要的话。
如有任何想法或建议,将不胜感激。
编辑:在eclipse中使用“作为java运行”时发生此错误。调试器甚至没有命中main中的第一行代码。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题