我有一个名为Main.java的程序,如下所示。编译完这个程序后,会有两个.class文件:Main.class和Main $ 1.class。我的问题是两个.class文件完全相同。
任何人都知道出了什么问题?
我想在新线程的run()方法中检测一些代码,但是我找不到新线程的run()方法中的代码指令。
public class Main{
public static void main(String...args){
Thread t=new Thread(){
@Override
public void run(){
System.out.println("xxxx");
}
};
t.start();
}
}
答案 0 :(得分:3)
我的钱不会正确地比较两个类文件。我打赌你在类似bash的提示中写下这样的东西:
md5sum Main.class Main$1.class
(或md5sum
以外的一些校验和工具)
这实际上是替换字符串中名为1
的变量 - 除非您已定义该变量,否则该变量为空,因此扩展为:
md5sum Main.class Main.class
将显示为相同的文件内容。
尝试单引号第二个字符串:
md5sum Main.class 'Main$1.class'