Eclipse中JAR文件的Java方法参数名称

时间:2010-10-03 03:06:21

标签: java eclipse jar

我创建了一个带有ant文件的Java库,以将其构建到JAR中。当我从另一个Java项目使用此JAR文件时,方法参数名称显示为Eclipse方法提示/自动完成:arg0,arg1,arg ......

例如,方法:

     void publishStatus(String jobId, int count);

显示为:

     void publishStatus(String arg0, int arg1);

我错过了什么?

谢谢,

修改

在此处已经详细讨论了这个问题: Preserving parameter/argument names in compiled java classes

2 个答案:

答案 0 :(得分:4)

Java方法参数名称未以类文件格式表示。 JVM规范的相关部分是4.3.34.6部分。 (严格来说,在某些情况下,它们可能,但它们不能包含在接口中,除非在编译类时设置了相关的编译器选项,否则不会包括它们。)

实际上,如果Eclipse可以查找和解析与类文件相对应的源代码,那么它还可以为您提供方法参数名称。在简单的情况下,您可以通过下载包含相关源代码的ZIP文件等并将其附加到二进制JAR来解决此问题。

关注重新评论:

我不是要在JAR中包含源文件夹(虽然这显然有效)。如果查看依赖JAR文件的Eclipse属性,可以使用附加相应源JAR或目录的方法。 (我现在无法运行Eclipse来为您提供准确的详细信息。)无论如何,这种方法不需要您重新编译或以其他方式更改依赖的JAR。

答案 1 :(得分:3)

编译类时,需要让java编译器包含“调试信息”,然后重新创建jar文件。

对于ant,这意味着debug="true"标记上有<javac ...>属性。