Java 新线程的类文件和main的类文件是相同的
我有一个名为Main.java的程序,如下所示。编译此程序后,将有两个.class文件:Main.class和Main$1.class。我的问题是这两个.class文件完全相同 有人知道怎么回事吗 我想在新线程的run()方法中插入一些代码,但在新线程的run()方法中找不到代码指令Java 新线程的类文件和main的类文件是相同的,java,multithreading,instrumentation,.class-file,Java,Multithreading,Instrumentation,.class File,我有一个名为Main.java的程序,如下所示。编译此程序后,将有两个.class文件:Main.class和Main$1.class。我的问题是这两个.class文件完全相同 有人知道怎么回事吗 我想在新线程的run()方法中插入一些代码,但在新线程的run()方法中找不到代码指令 public class Main{ public static void main(String...args){ Thread t=new Thread(){ @Ov
public class Main{
public static void main(String...args){
Thread t=new Thread(){
@Override
public void run(){
System.out.println("xxxx");
}
};
t.start();
}
}
我的钱在你没有正确比较两个类文件上。我敢打赌,在类似bash的提示符中,您正在编写类似这样的内容:
md5sum Main.class Main$1.class
(或一些校验和工具,而不是md5sum
)
这实际上是在替换字符串中名为1
的变量-除非定义了该变量,否则该变量为空,因此扩展为:
md5sum Main.class Main.class
将显示为相同的文件内容
尝试单引号引用第二个字符串:
md5sum Main.class 'Main$1.class'
我的钱落在你身上,你不能正确比较两个班级的档案。不知道你在问什么。这两个类文件相同是什么意思?他们不能。一个是对外公开的主类;另一个用于内部匿名类。两件完全不同的事情!请详细说明您的问题。请详细说明您是如何进行比较的。