繁体   English   中英

字母命名Java类文件从何而来?

[英]where do the alphabet naming java class files come from?

伙计们,我今天使用了反编译器jd-gui,发现我觉得很奇怪。

假设我有一个jar文件lib.jar,我反编译了它。 结果是,在同一包下有一些类文件,例如A.class,B.class,a.class等。 当我尝试将反编译的源文件粘贴到eclipse项目中时,IDE表示它不会接受同一文件夹下的A.class和a.class。 怎么会这样? 我猜没有人从a到z命名他/她的课程文件。 但是反编译器是这样告诉我的。

另外,我尝试将lib.jar导入到我的项目中,发现我无法触摸a.class和A.class所在的那个包下的任何公共类或接口。当我键入该包时,没有提示出现,例如,“进口firm.tools。”

谁能告诉我原因? 在此先感谢您,新年快乐!

您的jar文件可能包含混淆的类文件。 混淆文件的标识符已重命名,以使读者难以理解。 (混淆处理不仅仅只是重命名标识符,而且这是混淆处理通常要做的事情之一。)

但是IDE表示将不接受同一文件夹下的A.class和a.class。

这部分可能是由于您使用的是不区分大小写的文件系统(例如Windows上的NTFS)。 因此,IDE不可能为A.classa.class创建不同的文件,因为OS a.class它们视为等效的文件名。 并非所有系统都适用,Java规范也不适用-因此可以定义仅在大小写不同的Java类(尽管由于您刚刚说明的问题,不建议这样做)。

(至于名字本身,我同意克里斯的看法,这可能是混淆的结果。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM