我在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,但缺少的源仍然存在。。
我该怎么做?我不认为在一个罐子里更改一个文件的两行应该那么难。。
感谢
从源代码构建整个项目可能更容易(或者至少是可预测的(。一旦您成功构建了它,您就可以尝试编辑源代码。
你应该能够从项目的网站上签出来源。
如果你觉得这个类工作不正常而需要修补,那么可能值得尝试提交错误报告