如何更改jasper jar文件中的类



我在jasper方面遇到了一些问题,我需要尝试在jasper.jar文件中编辑SmapUtil类

然而,我在这样做时遇到了一些问题

我用jdgui反编译了jasper.jar文件,取出了SmapUtil.java文件,更改了的安装方法

static void install(File classFile, byte[] smap) throws IOException {
File tmpFile = new File(classFile.getPath() + "tmp");
SDEInstaller installer = new SDEInstaller(classFile, smap);
installer.install(tmpFile);
if (!classFile.delete()) {
throw new IOException("classFile.delete() failed");
}
if (!tmpFile.renameTo(classFile)) {
throw new IOException("tmpFile.renameTo(classFile) failed");
}
}

static void install(File classFile, byte[] smap){
File tmpFile = new File(classFile.getPath() + "tmp");
SDEInstaller installer = new SDEInstaller(classFile, smap);
installer.install(tmpFile);
while (!classFile.delete());
while (!tmpFile.renameTo(classFile));
}

如果第一次文件不起作用,基本上就是继续尝试删除它。

现在这就是我面临问题的地方。

如果我试图编译SmapUtil.java,我会面临很多缺失的源代码。我已经尝试过使用javac-classpath(原始(jasper.jar SmapUtil.java,但我仍然缺少很多源代码。

我从天知道的地方下载了一个jasper-sources.jar文件,并将其用作-classpath,但缺少的源仍然存在。。

我该怎么做?我不认为在一个罐子里更改一个文件的两行应该那么难。。

感谢

编译Tomcat这样的大型项目可能是一项相当复杂的工作。如果你在不知道这个过程的情况下尝试反编译/编辑/重新编译,你可能会遇到很多问题。

从源代码构建整个项目可能更容易(或者至少是可预测的(。一旦您成功构建了它,您就可以尝试编辑源代码。

你应该能够从项目的网站上签出来源。

如果你觉得这个类工作不正常而需要修补,那么可能值得尝试提交错误报告

最新更新