java.lang.NoSuchMethodError - Ljava/lang/String;)Ljava/lang/String;

新手上路,请多包涵

我的代码在下面给出了错误;

线程“main”中的异常 java.lang.NoSuchMethodError: com/myApp/Client.cypherCBC(Ljava/lang/String;)Ljava/lang/String;

但它在另一个本地环境中运行良好。到目前为止,我的代码如下;

 try {
    System.out.println("Encrypted CBC passwd : "
         + Client.cypherCBC("CypherThePassword"));
} catch (Exception e) {
    e.printStackTrace();
}

原文由 shankar jha 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 848
1 个回答

这是由于运行时 JAR 或类不匹配造成的。编译应用程序时存在的“Client”类有一个获取字符串参数的静态方法“cypherCBC”,但在运行时类加载器加载了没有这种方法的“Client”类(同名同签名)。

如果您可以在运行时调试应用程序,请在抛出异常的行放置一个断点,然后尝试评估以下表达式,

 Client.class.getResource("Client.class")

,然后你可以找到这个类是从哪里引出来的,然后你可以反编译并尝试解决问题。

原文由 hunter 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题