其他分享
首页 > 其他分享> > 在内网搭建GitBlit中会发现 有两张图片展示不了的解决方法

在内网搭建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