[英]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.class
和a.class
创建不同的文件,因为OS a.class
它们视为等效的文件名。 并非所有系统都适用,Java规范也不适用-因此可以定义仅在大小写不同的Java类(尽管由于您刚刚说明的问题,不建议这样做)。
(至于名字本身,我同意克里斯的看法,这可能是混淆的结果。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.