当前位置: 首页 > 知识库问答 >
问题:

Java.lang.NoClassDef在 Linux 上作为打包的 .war 部署时由 FFmpeg 引起的错误(适用于开发计算机)

费明诚
2023-03-14

我使用FFmpeg包装器为用户上传的视频创建缩略图。在我的开发机器上测试时,这非常好。但是,每当我将我的项目打包为. war并部署到Amazon Web Services时,我都会得到以下堆栈跟踪:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil
    at java.lang.Class.forName0(Native Method) ~[na:1.8.0_101]
    at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_101]
    at org.bytedeco.javacpp.Loader.load(Loader.java:472) ~[javacpp-1.2.1.jar!/:1.2.1]
    at org.bytedeco.javacpp.Loader.load(Loader.java:417) ~[javacpp-1.2.1.jar!/:1.2.1]
    at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2597) ~[ffmpeg-2.8.1-1.1.jar!/:1.2.1]
    at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:391) ~[javacv-1.2.jar!/:1.2]
    at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:385) ~[javacv-1.2.jar!/:1.2]
    at com.myapp.app.service.ICampaignService.createThumbnail(ICampaignService.java:425) ~[classes!/:0.0.44T-SNAPSHOT]
    at com.myapp.app.service.ICampaignService$$FastClassBySpringCGLIB$$47736265.invoke(<generated>) ~[classes!/:0.0.44T-SNAPSHOT]
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720) ~[spring-aop-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) ~[spring-tx-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:280) ~[spring-tx-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655) ~[spring-aop-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at com.myapp.app.service.ICampaignService$$EnhancerBySpringCGLIB$$67e59894.createThumbnail(<generated>) ~[classes!/:0.0.44T-SNAPSHOT]
    at com.myapp.app.controllers.CampaignController.uploadCampaign(CampaignController.java:237) ~[classes!/:0.0.44T-SNAPSHOT]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_101]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_101]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_101]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101]
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) ~[spring-web-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114) ~[spring-webmvc-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) ~[spring-webmvc-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) ~[spring-webmvc-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    ... 85 common frames omitted

以下是我对FFmpeg包装器的maven依赖:

<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv</artifactId>
    <version>1.3</version>
</dependency>
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacpp</artifactId>
    <version>1.3</version>
</dependency>
<dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>ffmpeg</artifactId>
    <version>3.2.1-1.3</version>
</dependency>
<dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>opencv-platform</artifactId>
    <version>3.1.0-1.3</version>
</dependency>

同样,这个库在我的开发机器上工作得非常好。

>

  • 开发计算机:视窗 10,64 位(工作)

    AWS实例:64位AmazonLinux2016.09 v2.2.0运行Java8(导致上述问题)

    我花了大约7个小时试图通过乱搞版本来解决这个问题。知道如何解决这个问题吗?

    编辑

    依赖关系树:

    [INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.4.0.RELEASE:compile
    [INFO] |  +- org.springframework.boot:spring-boot-starter:jar:1.4.0.RELEASE:compile
    [INFO] |  |  +- org.springframework.boot:spring-boot:jar:1.4.0.RELEASE:compile
    [INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:1.4.0.RELEASE:compile
    [INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:1.4.0.RELEASE:compile
    [INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.1.7:compile
    [INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.1.7:compile
    [INFO] |  |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.21:compile
    [INFO] |  |  |  \- org.slf4j:log4j-over-slf4j:jar:1.7.21:compile
    [INFO] |  |  \- org.yaml:snakeyaml:jar:1.17:runtime
    [INFO] |  +- org.springframework.boot:spring-boot-starter-aop:jar:1.4.0.RELEASE:compile
    [INFO] |  |  \- org.aspectj:aspectjweaver:jar:1.8.9:compile
    [INFO] |  +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.4.0.RELEASE:compile
    [INFO] |  |  +- org.apache.tomcat:tomcat-jdbc:jar:8.5.4:compile
    [INFO] |  |  |  \- org.apache.tomcat:tomcat-juli:jar:8.5.4:compile
    [INFO] |  |  \- org.springframework:spring-jdbc:jar:4.3.2.RELEASE:compile
    [INFO] |  +- org.hibernate:hibernate-core:jar:5.0.9.Final:compile
    [INFO] |  |  +- org.jboss.logging:jboss-logging:jar:3.3.0.Final:compile
    [INFO] |  |  +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
    [INFO] |  |  +- org.javassist:javassist:jar:3.20.0-GA:compile
    [INFO] |  |  +- antlr:antlr:jar:2.7.7:compile
    [INFO] |  |  +- org.jboss:jandex:jar:2.0.0.Final:compile
    [INFO] |  |  +- dom4j:dom4j:jar:1.6.1:compile
    [INFO] |  |  |  \- xml-apis:xml-apis:jar:1.4.01:compile
    [INFO] |  |  \- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile
    [INFO] |  +- org.hibernate:hibernate-entitymanager:jar:5.0.9.Final:compile
    [INFO] |  +- javax.transaction:javax.transaction-api:jar:1.2:compile
    [INFO] |  +- org.springframework.data:spring-data-jpa:jar:1.10.2.RELEASE:compile
    [INFO] |  |  +- org.springframework.data:spring-data-commons:jar:1.12.2.RELEASE:compile
    [INFO] |  |  +- org.springframework:spring-orm:jar:4.3.2.RELEASE:compile
    [INFO] |  |  +- org.springframework:spring-tx:jar:4.3.2.RELEASE:compile
    [INFO] |  |  \- org.slf4j:jcl-over-slf4j:jar:1.7.21:compile
    [INFO] |  \- org.springframework:spring-aspects:jar:4.3.2.RELEASE:compile
    [INFO] +- org.springframework.boot:spring-boot-starter-security:jar:1.4.0.RELEASE:compile
    [INFO] |  +- org.springframework:spring-aop:jar:4.3.2.RELEASE:compile
    [INFO] |  +- org.springframework.security:spring-security-config:jar:4.1.1.RELEASE:compile
    [INFO] |  \- org.springframework.security:spring-security-web:jar:4.1.1.RELEASE:compile
    [INFO] |     \- org.springframework:spring-expression:jar:4.3.2.RELEASE:compile
    [INFO] +- org.springframework.boot:spring-boot-starter-web:jar:1.4.0.RELEASE:compile
    [INFO] |  +- org.springframework.boot:spring-boot-starter-tomcat:jar:1.4.0.RELEASE:compile
    [INFO] |  |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:8.5.4:compile
    [INFO] |  |  +- org.apache.tomcat.embed:tomcat-embed-el:jar:8.5.4:compile
    [INFO] |  |  \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.5.4:compile
    [INFO] |  +- org.hibernate:hibernate-validator:jar:5.2.4.Final:compile
    [INFO] |  |  +- javax.validation:validation-api:jar:1.1.0.Final:compile
    [INFO] |  |  \- com.fasterxml:classmate:jar:1.3.1:compile
    [INFO] |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.8.1:compile
    [INFO] |  |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.8.1:compile
    [INFO] |  |  \- com.fasterxml.jackson.core:jackson-core:jar:2.8.1:compile
    [INFO] |  +- org.springframework:spring-web:jar:4.3.2.RELEASE:compile
    [INFO] |  \- org.springframework:spring-webmvc:jar:4.3.2.RELEASE:compile
    [INFO] +- org.springframework.boot:spring-boot-starter-test:jar:1.4.0.RELEASE:test
    [INFO] |  +- org.springframework.boot:spring-boot-test:jar:1.4.0.RELEASE:test
    [INFO] |  +- org.springframework.boot:spring-boot-test-autoconfigure:jar:1.4.0.RELEASE:test
    [INFO] |  +- com.jayway.jsonpath:json-path:jar:2.2.0:test
    [INFO] |  |  \- net.minidev:json-smart:jar:2.2.1:test
    [INFO] |  |     \- net.minidev:accessors-smart:jar:1.1:test
    [INFO] |  |        \- org.ow2.asm:asm:jar:5.0.3:test
    [INFO] |  +- junit:junit:jar:4.12:test
    [INFO] |  +- org.assertj:assertj-core:jar:2.5.0:test
    [INFO] |  +- org.mockito:mockito-core:jar:1.10.19:test
    [INFO] |  |  \- org.objenesis:objenesis:jar:2.1:test
    [INFO] |  +- org.hamcrest:hamcrest-core:jar:1.3:test
    [INFO] |  +- org.hamcrest:hamcrest-library:jar:1.3:test
    [INFO] |  +- org.skyscreamer:jsonassert:jar:1.3.0:test
    [INFO] |  |  \- org.json:json:jar:20140107:test
    [INFO] |  +- org.springframework:spring-core:jar:4.3.2.RELEASE:compile
    [INFO] |  \- org.springframework:spring-test:jar:4.3.2.RELEASE:test
    [INFO] +- org.springframework.security.oauth:spring-security-oauth2:jar:2.0.10.RELEASE:compile
    [INFO] |  +- org.springframework:spring-beans:jar:4.3.2.RELEASE:compile
    [INFO] |  +- org.springframework:spring-context:jar:4.3.2.RELEASE:compile
    [INFO] |  +- org.springframework.security:spring-security-core:jar:4.1.1.RELEASE:compile
    [INFO] |  |  \- aopalliance:aopalliance:jar:1.0:compile
    [INFO] |  +- commons-codec:commons-codec:jar:1.10:compile
    [INFO] |  \- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
    [INFO] |     \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
    [INFO] +- org.springframework.security:spring-security-jwt:jar:1.0.4.RELEASE:compile
    [INFO] |  \- org.bouncycastle:bcpkix-jdk15on:jar:1.47:compile
    [INFO] |     \- org.bouncycastle:bcprov-jdk15on:jar:1.47:compile
    [INFO] +- mysql:mysql-connector-java:jar:5.1.39:compile
    [INFO] +- commons-io:commons-io:jar:2.5:compile
    [INFO] +- org.apache.commons:commons-lang3:jar:3.0:compile
    [INFO] +- org.bytedeco:javacv:jar:1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:flycapture:jar:2.9.3.43-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:libdc1394:jar:2.2.4-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:libfreenect:jar:0.5.3-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:librealsense:jar:1.9.6-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:videoinput:jar:0.200-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:artoolkitplus:jar:2.3.1-1.3:compile
    [INFO] |  \- org.bytedeco.javacpp-presets:flandmark:jar:1.07-1.3:compile
    [INFO] +- org.bytedeco:javacpp:jar:1.3:compile
    [INFO] +- org.bytedeco.javacpp-presets:ffmpeg:jar:3.2.1-1.3:compile
    [INFO] +- org.bytedeco.javacpp-presets:opencv-platform:jar:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:android-arm:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:android-x86:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:linux-x86:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:linux-x86_64:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:linux-armhf:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:linux-ppc64le:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:macosx-x86_64:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:windows-x86:3.1.0-1.3:compile
    [INFO] |  \- org.bytedeco.javacpp-presets:opencv:jar:windows-x86_64:3.1.0-1.3:compile
    [INFO] +- com.paypal.sdk:rest-api-sdk:jar:1.13.0:compile
    [INFO] |  +- org.slf4j:slf4j-api:jar:1.7.21:compile
    [INFO] |  \- com.google.code.gson:gson:jar:2.7:compile
    [INFO] +- com.squareup.okhttp3:okhttp:jar:3.4.1:compile
    [INFO] |  \- com.squareup.okio:okio:jar:1.9.0:compile
    [INFO] +- javax.mail:mail:jar:1.4:compile
    [INFO] |  \- javax.activation:activation:jar:1.1:compile
    [INFO] \- com.amazonaws:aws-java-sdk:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-support:jar:1.11.58:compile
    [INFO]    |  \- com.amazonaws:jmespath-java:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-simpledb:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-servicecatalog:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-servermigration:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-simpleworkflow:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-storagegateway:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-route53:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-s3:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-importexport:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-sts:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-sqs:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-rds:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-redshift:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-elasticbeanstalk:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-glacier:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-iam:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-datapipeline:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-elasticloadbalancing:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-elasticloadbalancingv2:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-emr:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-elasticache:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-elastictranscoder:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-ec2:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-dynamodb:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-sns:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-budgets:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudtrail:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudwatch:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-logs:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-events:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cognitoidentity:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cognitosync:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-directconnect:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudformation:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudfront:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-kinesis:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-opsworks:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-ses:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-autoscaling:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudsearch:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudwatchmetrics:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-codedeploy:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-codepipeline:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-kms:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-config:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-lambda:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-ecs:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-ecr:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudhsm:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-ssm:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-workspaces:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-machinelearning:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-directory:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-efs:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-codecommit:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-devicefarm:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-elasticsearch:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-waf:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-marketplacecommerceanalytics:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-inspector:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-iot:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-api-gateway:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-acm:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-gamelift:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-dms:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-marketplacemeteringservice:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cognitoidp:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-discovery:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-applicationautoscaling:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-snowball:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-core:jar:1.11.58:compile
    [INFO]    |  +- commons-logging:commons-logging:jar:1.1.3:compile
    [INFO]    |  +- org.apache.httpcomponents:httpclient:jar:4.5.2:compile
    [INFO]    |  |  \- org.apache.httpcomponents:httpcore:jar:4.4.5:compile
    [INFO]    |  +- software.amazon.ion:ion-java:jar:1.0.1:compile
    [INFO]    |  +- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar:2.8.1:compile
    [INFO]    |  \- joda-time:joda-time:jar:2.9.4:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-models:jar:1.11.58:compile
    [INFO]    \- com.amazonaws:aws-java-sdk-swf-libraries:jar:1.11.22:compile
    

    将Linux升级到2.4、将javacpp降级到1.2.1并运行mvn clean后出错:

    java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil
        at java.lang.Class.forName0(Native Method) ~[na:1.8.0_111]
        at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_111]
        at org.bytedeco.javacpp.Loader.load(Loader.java:472) ~[javacpp-1.2.1.jar!/:1.2.1]
        at org.bytedeco.javacpp.Loader.load(Loader.java:417) ~[javacpp-1.2.1.jar!/:1.2.1]
        at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2819) ~[ffmpeg-3.2.1-1.3.jar!/:1.2.1]
        at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:391) ~[javacv-1.3.jar!/:1.3]
        at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:385) ~[javacv-1.3.jar!/:1.3]
    
      < li >将Linux升级到2.4版 < li >将javacpp降级到1.2.1 < li >运行mvn clean < li >运行mvn -U < li >删除/.m2/的内容并重新下载依赖项 < li >依赖版本的各种组合 Linux虚拟机上的< li> git克隆
  • 共有3个答案

    公良子轩
    2023-03-14

    这种错误可以被认为是与类加载器相关的错误,也称为JAR Hell。在大多数情况下,类装入器试图在运行时查找一个类/方法,但没有找到他期望找到的。

    当您在处理一个具有大量外部依赖项的更大的Java项目时,您可能会更经常地遇到这种问题(这些项目也有依赖项等等...).

    有几种方法可以解决这类问题,其中一种非常好:

    检查您的依赖关系树:

    运行mvn清洁来清理可能的噪音。然后运行mvn依赖:树-U

    查看< code>deps.txt内部,会得到maven项目中所有依赖项的树形结构。它看起来如下:

    [INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.8.4:compile
    [INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.8.4:compile
    [INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-joda:jar:2.8.4:compile
    [INFO] |  \- joda-time:joda-time:jar:2.3:compile
    [INFO] +- com.fasterxml.jackson.module:jackson-module-scala_2.11:jar:2.8.4:compile
    [INFO] |  +- org.scala-lang:scala-reflect:jar:2.11.8:compile
    [INFO] |  \- com.fasterxml.jackson.module:jackson-module-paranamer:jar:2.8.4:compile
    [INFO] |     \- com.thoughtworks.paranamer:paranamer:jar:2.5.2:compile
    [INFO] +- com.google.guava:guava:jar:19.0:compile
    [INFO] +- com.google.code.findbugs:jsr305:jar:3.0.1:compile
    [INFO] +- org.apache.commons:commons-lang3:jar:3.4:compile
    [INFO] +- org.mongodb:casbah-commons_2.11:jar:3.1.1:compile
    

    如您所见,它是一个树结构,显示您的库及其依赖库。接下来尝试查找版本不匹配(例如,同一范围内同一库的两个不同版本)。

    示例:

    [INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.8.4:compile
    [INFO] |  \- joda-time:joda-time:jar:2.3:compile
    [INFO] +- com.my.fancy:library:jar:1.0:compile
    [INFO] |  \- joda-time:joda-time:jar:1.8:compile
    

    如您所见,花哨的库包含另一个jackson-core版本。两者都在compile范围内。这可能会导致运行时错误,因为类加载器可以尝试获取joda: time: 1.8的方法/类,但在jackson-core的范围内,这需要joda: time: 2.3。

    要解决这个问题,您可以从您的作用域中显式排除一个joda time版本(在您的< code>pom.xml中):

    <dependencies>
       <dependency>
         <groupId>com.my.fancy</groupId>
         <artifactId>library</artifactId>
         <version>1.0</version>
         <exclusions>
           <exclusion>
             <groupId>joda-time</groupId>
             <artifactId>joda-time</artifactId>
           </exclusion>
         </exclusions>
       </dependency>
    </dependencies>
    

    希望这能给你一个好的开始。罐子地狱没有万能的解决方案,如果你有更多的问题,欢迎回复这个答案,我们会解决的!

    伊凡

    缪阎宝
    2023-03-14

    看来,你需要将glibc更新到2.14检查 https://github.com/bytedeco/javacpp/issues/106

    景品
    2023-03-14

    经过大量的版本切换和Maven清理,我终于让它工作了。无需在LinuxVM上克隆。

      < li>Maven clean < li >删除pom.xml中不必要的/重复的依赖项 < li >删除包含所有依赖关系jar的/.m2/repository文件夹 < li >运行maven build以重新安装所有依赖项 < li>Maven安装并打包。战争不应该再有这个问题了。
     类似资料:
    • 我不熟悉weblogic,正在努力部署战争。我有一个在嵌入式tomcat上运行的spring boot应用程序。我改变了主要课程如下。 } 我把包装改成了战争,把tomcat罐子排除在外,然后部署。但是当提交请求时,我得到了404。我在管理控制台的诊断日志中没有看到任何内容。有地方看日志吗。在weblogic管理控制台中,我可以看到应用程序处于活动状态,运行状况良好。 我更改了相同的应用程序spr

    • 当我尝试部署一个war(Apache airavata-registry . war)时,我得到如下所示的错误。能是什么原因呢? 2013年11月14日下午7:41:19 org . Apache . catalina . core . application context日志信息:HTMLManager: list:列出虚拟主机“localhost”的上下文2013年11月14日下午7:41:

    • 我使用的是Tomcat7.0.20和Grails1.3.7,在部署war文件时,我遇到了这个错误。 AM org.apache.Catalina.startup.hostconfig deployWAR信息:部署web应用程序存档ih-core.war 2013年2月25日1:55:35AM org.apache.Catalina.core.containerbase AddChildinal严重

    • 本文讲解了如何开发容器化应用,并使用Wercker持续集成工具构建docker镜像上传到docker镜像仓库中,然后在本地使用docker-compose测试后,再使用kompose自动生成kubernetes的yaml文件,再将注入Envoy sidecar容器,集成Istio service mesh中的详细过程。 整个过程如下图所示。 为了讲解详细流程,我特意写了用Go语言开发的示例程序放在

    • > 安装命令行工具,然后将其放在SDK文件夹(users/user/library/android/SDK)中。然后将添加到路径(引用) 这样做之后,在终端上执行sdkmanager时,我得到以下消息 然后我再次搜索,它引导我找到这个线程,然后就像在答案上一样,我试图重命名文件夹,然后其他尝试不相关。我陷入了许多根本不起作用的链接和引用。 之后,我尝试检查如果单击会发生什么,然后显示如下: 正如消