在内网搭建GitBlit中会发现 有两张图片展示不了的解决方法
作者:互联网
因为在源码中图片的地址是:
所以需要将GitBlit中的 【gitblit.jar】 中 com.gitblit.utils.ActivityUtils.class代码中,修改一下。
1、首先在有网的环境下将图片下载下来
图片:
下载后的图片放入
2、使用【jclasslib_win64_5_3.exe】工具找到位置
点击 箭头部分
随便创建一个java工程导入【jclasslib.jar】包
用刚才找到的位置修改class中的内容
package com.cs; import java.io.*; import org.gjt.jclasslib.io.ClassFileWriter; import org.gjt.jclasslib.structures.CPInfo; import org.gjt.jclasslib.structures.ClassFile; import org.gjt.jclasslib.structures.constants.ConstantUtf8Info; public class Test { public static void main(String[] args) throws Exception { String filePath = "C:\\Users\\admin\\Desktop\\ActivityUtils.class"; FileInputStream fis = new FileInputStream(filePath); DataInput di = new DataInputStream(fis); ClassFile cf = new ClassFile(); cf.read(di); CPInfo[] infos = cf.getConstantPool(); int count = infos.length; for (int i = 0; i < count; i++) { if (infos[i] != null) { System.out.print(i); System.out.print(" = "); System.out.print(infos[i].getVerbose()); System.out.print(" = "); System.out.println(infos[i].getTagVerbose()); if (i == 243) {//刚刚找到的是21位置 ConstantUtf8Info uInfo = (ConstantUtf8Info) infos[i]; //刚刚那里是CONSTANT_Utf-8_info所以这里要用这个 uInfo.setBytes("/touxiang2.png".getBytes()); // 需要替换的路径 infos[i] = uInfo; } } } //这种方式也可以,一样的 /* if(infos[count] != null) { ConstantUtf8Info uInfo = (ConstantUtf8Info) infos[i]; //刚刚那里是CONSTANT_Utf-8_info所以这里要用这个 uInfo.setBytes("baidu".getBytes()); infos[count] = uInfo; }*/ cf.setConstantPool(infos); fis.close(); File f = new File(filePath); ClassFileWriter.writeToFile(f, cf); } }
然后运行后,使用【jd-gui.exe 】 查看有没被更改
更改后然后去替换【gitblit.jar】 中的 com.gitblit.utils.ActivityUtils.class 即可。
标签:jclasslib,uInfo,cf,两张,GitBlit,import,infos,out,中会 来源: https://www.cnblogs.com/valu/p/16600636.html