为什么我的 Java 路径中添加了“L”?

2024-05-27

我在我的类路径中加载了一个 jar (在 iReport 中,如果重要的话),我确信它具有所需的方法,但是当我尝试测试连接,从而调用该 jar 时,我得到一个 java.lang.NoSuchMethodError ,说它正在引用班上

Lorg/springframework/web/context/WebApplicationContext

我不确定这是否与问题有关,但是开头的“L”是从哪里来的?另一次,我在引用一门课程时,课程后面有一个“V”。这些字母从何而来,它们的含义是什么?

堆栈跟踪的开始:

java.lang.NoSuchMethodError:  
org.springframework.web.context.ContextLoader
.getCurrentWebApplicationContext()Lorg/springframework/web/context/WebApplicationContext;

Java 使用这些字母在内部对方法签名进行编码。例如,“L”声明后面的“对象”,该对象由其完整类名指定,后跟分号。 “V”前面应该有括号,并描述“void”的返回类型。

拿你的例子来说:

java.lang.NoSuchMethodError:
org.springframework.web.context.ContextLoader .getCurrentWebApplicationContext()Lorg/springframework/web/context/WebApplicationContext;

它说,类中没有方法org.springframework.web.context.ContextLoader called getCurrentWebApplicationContext不接受任何参数[表示为()] 并返回一个对象(由L)称为“org/springframework/web/context/WebApplicationContext”(以“;”结束)。

EDIT:所有代码的列表在表 3.2 中JNI 规范 http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/types.html#wp276.

EDIT2:更权威:部分4.3 描述符 http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#1169JVM 规范包含完整的格式和代码参考。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的 Java 路径中添加了“L”? 的相关文章

随机推荐