强制java重新编译坏类

强制java重新编译坏类,java,compilation,Java,Compilation,我有一个jar文件,我需要对它做一些小的更改。我删除损坏的类文件,并用JAD反编译它们。但在我修复它们之后,我需要重新编译。当我重新编译时,我显然会出错,因为我只编辑了一个文件。但我知道可以将修改过的类文件注入到jar中。 所以我的问题是:有没有可能强制java编译这些文件,这样我就可以重新插入它们?唯一的错误是找不到依赖项和包,但是如果我把它放回jar中,它会找到它们。您可以使用接口的实现和对象的组合来开发与其他更改相同的类。开发自定义类加载器后,卸载旧类并加载新类。但这很难做到。不可能。编译

我有一个jar文件,我需要对它做一些小的更改。我删除损坏的类文件,并用JAD反编译它们。但在我修复它们之后,我需要重新编译。当我重新编译时,我显然会出错,因为我只编辑了一个文件。但我知道可以将修改过的类文件注入到jar中。
所以我的问题是:有没有可能强制java编译这些文件,这样我就可以重新插入它们?唯一的错误是找不到依赖项和包,但是如果我把它放回jar中,它会找到它们。

您可以使用接口的实现和对象的组合来开发与其他更改相同的类。开发自定义类加载器后,卸载旧类并加载新类。但这很难做到。

不可能。编译器将始终拒绝生成无法确保类型安全的代码。为此,它必须具有所有可用的依赖项。但是假设您可以运行JAR,那么您就有了这些依赖项。为什么不把它们放在编译器的类路径上呢?欢迎Ethan。我不确定fvu是否只是发布了一个指向精确副本的链接(至于“force java compiler”部分,正如Jochen所建议的,这是不可行的),但我认为您应该能够将其用作答案。这听起来比从jar中提取类文件、反编译、更改类文件要复杂得多,再次编译它(在类路径中使用已更改的.jar)并将其放回.jar文件中。您阅读了这个问题吗?引用:当我重新编译时,我显然会出错,因为我只编辑了一个文件是的,我读过,但我不认为在类路径中包含.jar文件对解决这种情况没有任何帮助。