猿问

如何更改 jasper jar 文件中的类

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


然而,我这样做面临一些问题。


我使用jd-gui反编译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 (original)jasper.jar SmapUtil.java,但仍然缺少很多源。

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

我该怎么做呢?我认为更改 jar 内文件的两行应该不那么困难。

谢谢


偶然的你
浏览 132回答 1
1回答

一只萌萌小番薯

编译像 Tomcat 这样的大型项目可能是一项相当复杂的工作。如果您在不了解此过程的情况下尝试反编译/编辑/重新编译,您可能会遇到很多问题。从源代码构建整个项目可能更容易(或者至少是可预测的)。一旦成功构建它,您就可以尝试编辑源代码。您应该能够从该项目的网站上查看源代码。如果您需要修补此类,因为您觉得它无法正常工作,那么可能值得尝试提交错误报告
随时随地看视频慕课网APP

相关分类

Java
我要回答