我遇到了 jasper 的一些問(wèn)題,我需要嘗試編輯 jasper.jar 文件中的 SmapUtil 類然而,我這樣做面臨一些問(wèn)題。我使用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)); }基本上,如果第一次不起作用,則繼續(xù)嘗試刪除該文件。現(xiàn)在這就是我面臨問(wèn)題的地方。如果我嘗試編譯 SmapUtil.java,我會(huì)遇到很多丟失的源代碼。我嘗試過(guò)使用 javac -classpath (original)jasper.jar SmapUtil.java,但仍然缺少很多源。我從天知道在哪里下載了一個(gè) jasper-sources.jar 文件并將其用作類路徑,但缺少的源仍然存在。我該怎么做呢?我認(rèn)為更改 jar 內(nèi)文件的兩行應(yīng)該不那么困難。謝謝
1 回答

一只萌萌小番薯
TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
編譯像 Tomcat 這樣的大型項(xiàng)目可能是一項(xiàng)相當(dāng)復(fù)雜的工作。如果您在不了解此過(guò)程的情況下嘗試反編譯/編輯/重新編譯,您可能會(huì)遇到很多問(wèn)題。
從源代碼構(gòu)建整個(gè)項(xiàng)目可能更容易(或者至少是可預(yù)測(cè)的)。一旦成功構(gòu)建它,您就可以嘗試編輯源代碼。
您應(yīng)該能夠從該項(xiàng)目的網(wǎng)站上查看源代碼。
如果您需要修補(bǔ)此類,因?yàn)槟X(jué)得它無(wú)法正常工作,那么可能值得嘗試提交錯(cuò)誤報(bào)告
添加回答
舉報(bào)
0/150
提交
取消