【发布时间】:2013-12-29 05:48:54
【问题描述】:
我正在尝试在 Scala 2.8.1 中运行一个名为 LinkedIn Norbert (https://github.com/linkedin/norbert) 的开源程序。我已经添加了所有 jar 文件以便程序编译,但是当我尝试在示例/src/main/java 中运行类 com.linkedin.norbert.javacompat.network.RunNorbertSetup 时,我收到以下错误:
Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.augmentString(Ljava/lang/String;)Lscala/collection/immutable/StringOps;
at com.linkedin.norbert.jmx.JMX$.name(JMX.scala:59)
at com.linkedin.norbert.cluster.ClusterClient$$anon$1.<init>(ClusterClient.scala:56)
at com.linkedin.norbert.cluster.ClusterClient$class.$init$(ClusterClient.scala:55)
at com.linkedin.norbert.cluster.zookeeper.ZooKeeperClusterClient.<init>(ZooKeeperClusterClient.scala:22)
at com.linkedin.norbert.cluster.ClusterClient$.apply(ClusterClient.scala:33)
at com.linkedin.norbert.javacompat.cluster.ZooKeeperClusterClient.<init>(ZooKeeperClusterClient.scala:23)
at com.linkedin.norbert.javacompat.cluster.ZooKeeperClusterClient.<init>(ZooKeeperClusterClient.scala:21)
at com.linkedin.norbert.javacompat.network.RunNorbertSetup.configCluster(RunNorbertSetup.java:115)
at com.linkedin.norbert.javacompat.network.RunNorbertSetup.main(RunNorbertSetup.java:21)
我需要做什么才能克服这个错误?我查看了其他 Stack Overflow 和论坛主题,但这些都没有帮助。
仅供参考:我使用 SBT 构建了程序。
非常感谢, 丽贝卡
【问题讨论】:
-
基本上意味着该类的旧版本潜伏在您的类路径中。当您的一个依赖项覆盖另一个依赖项并包含还没有此方法的旧版本的类时,通常会发生这种情况。在这种情况下,重新排序依赖项将有所帮助(最新版本在顶部)。但很难确定,如果这是原因,因为不知道你的依赖结构。
-
谢谢!那行得通。原来类路径中有多个版本的 Scala 库,我只是将它们全部更改为正确的。
标签: java scala open-source dependencies