我有一些包含很多 .class java类的包,我能以某种方式重新创建吗?还是maven?
或者我可以做些什么才能使用这个.classes但不要使用的主要课程。因为.class扩展而看到它?
我尝试将.class扩展名更改为.java,但编码错误...重命名为.java后无法读取..
或者可能是依赖它?或者什么是最好的解决方案?
我有这个主要的:
public class Main {
public static void main(String[] args) {
Snake snake = new Snake();
snake.addAI(new MintaAi(), Color.red.darker());
snake.addAI(new MintaAi(), Color.blue.darker());
snake.start();
}
}
我必须运行它,但我需要的是.class扩展名。
答案 0 :(得分:3)
假设您正在讨论一些以.class文件形式出现的第三方输入; 查看 Java源代码的一种简单方法是将这些类文件放入JAR文件中;并将该JAR文件添加到IntelliJ中的项目设置中。当您知道在该库中出现的类上按“F3”时,IntelliJ将反编译该类文件内容并将其显示给您。
或者,您可以查看为您执行此操作的命令行工具,例如jd-gui。你必须明白,所有这些技术都受到一定程度的限制。例如,当混淆器触摸字节代码时,反编译器可能很难向您显示任何有用的内容。
但真正的答案是:您想退后一步,了解一下您打算使用的概念。像“.java”一样意味着Java源代码;和.class表示“字节码,从Java源代码编译”。
当然:当Snake或MintaAi是你所写的课程时;然后你应该在某个地方有源代码。
答案 1 :(得分:0)
使用bytecodeview http://bytecodeviewer.com/。它包含几种类型的反编译器。您可以更改反编译器并查看反编译代码质量的预览。如果代码量很小而且没有编译,那么效果很好。
错误的部分是:泛型(类型擦除),非常糟糕的部分是反射(代理调用),真正糟糕的部分是在类文件中使用字节码注入。