线程“主”java.lang.NoSuchMethodError 中的异常:com.google.common.io.Files.newReaderSupplier(Ljava/io/File;Lja

Posted

技术标签:

【中文标题】线程“主”java.lang.NoSuchMethodError 中的异常:com.google.common.io.Files.newReaderSupplier(Ljava/io/File;Ljava/nio/charset/Charset;)【英文标题】:Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.io.Files.newReaderSupplier(Ljava/io/File;Ljava/nio/charset/Charset;) 【发布时间】:2017-10-20 03:12:55 【问题描述】:

我从一个私人图书馆收到以下异常:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.io.Files.newReaderSupplier(Ljava/io/File;Ljava/nio/charset/Charset;)Lcom/google/common/io/InputSupplier;

经过研究,问题似乎出在 google guava jar 上。 我正在使用 google guava jar 版本 17.0 并尝试更改版本。但无法确定可以解决问题的特定 jar 版本。

请帮忙。

【问题讨论】:

你使用 Maven 来组装你的项目吗? yes.maven 构建成功。在 weblogic 12.2.1.2 部署期间出现异常 实际上,Guava 17.0 still has such method,它被标记为已弃用,但仍然存在。运行mvn dependency:tree 并分析输出。我猜你在你的一个 poms 中压倒了依赖。也尝试强制更新mvn clean package -U 【参考方案1】:

问题出在 Weblogic 12c 内部,它在内部添加了 Guava 17.0 jar。因此它忽略了 maven pom.xml 中的 Guava jar。

为了解决这个问题,在 application/war 中添加 weblogic.xml 并提及需要排除的包。

【讨论】:

以上是关于线程“主”java.lang.NoSuchMethodError 中的异常:com.google.common.io.Files.newReaderSupplier(Ljava/io/File;Lja的主要内容,如果未能解决你的问题,请参考以下文章

主线程啥都没做,就会等待子线程结束。这是为啥?

Android 异步操作Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )

子线程怎么不阻塞主线程

QT中UI主窗口如何与子线程相互传递参数

java 子线程 回调 主线程

C++怎么在主线程中使用子线程的数据? 比如说主线程中有一个数组,如何在子线程中调用这个数组