ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

在内网搭建GitBlit中会发现 有两张图片展示不了的解决方法

2022-08-19 01:02:00  阅读:105  来源: 互联网

标签:jclasslib uInfo cf 两张 GitBlit import infos out 中会


因为在源码中图片的地址是:

 

 

 

 

所以需要将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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有