`
yynwpf
  • 浏览: 9866 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

gui反编译后的源文件格式修改

阅读更多
package com.tcms.order.test;
 
import java.io.File;
import java.io.IOException;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
 
 
public class RemoveContentUtil
{
    private static String regex = "\\/\\*[\\p{ASCII}]*?\\*\\/\\s?";
    //反编译后的java文件目录
    private static String directory = "D:\\software\\cores";
    private static String newDirectory = "";
     
     
    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException
    {
        start();
    }
     
    public static void start() throws IOException{
      
        File folder = new File(directory);
        directory = folder.getCanonicalPath();
         
        File parentFolder = folder.getParentFile();
        newDirectory = parentFolder.getCanonicalPath() + "\\" + folder.getName() + System.currentTimeMillis() + "\\";
        File[] files = folder.listFiles();
        loopFile(files);
    }
     
    public static void loopFile(File[] files) throws IOException{
        if(files == null){
            return;
        }
         
        for(File f : files){
            if(f.isFile()){
                if(f.getName().endsWith(".java")){
                    removeContent(directory, newDirectory, f, true);
                }else{
                    removeContent(directory, newDirectory, f, false);
                }
            }else{
                loopFile(f.listFiles());
            }
        }
    }
     
    public static void removeContent(String oldDir, String newDir, File file, boolean remove) throws IOException{
        List<String> lines = FileUtils.readLines(file);
        String relocationString = relocationLineNumber(lines);
        String newContent = remove ? relocationString.replaceAll(regex, "") : relocationString;
        File newFile = new File(file.getCanonicalPath().replace(oldDir, newDir));
        FileUtils.writeStringToFile(newFile, newContent);
    }
     
    public static String relocationLineNumber(List<String> lines){
        int currentLine = 0;
        StringBuilder content = new StringBuilder();
        for(String line : lines){
            currentLine++;
            int num = readLineNumber(line);
            if(num != -1){
                while(currentLine < num){
                    currentLine++;
                    content.append(IOUtils.LINE_SEPARATOR);
                }
            }
            content.append(line).append(IOUtils.LINE_SEPARATOR);
        }
        //IOUtils.LINE_SEPARATOR;
        return content.toString();
    }
     
    private static int readLineNumber(String line){
        int start = line.indexOf("/*");
        int end = line.indexOf("*/");
        if(start > -1 && end > start){
            //check is annotation
            String left = line.substring(end + 2).trim();
            if(left.startsWith("@")){
                return -1;
            }
             
            String linNum = line.substring(start + 2, end).trim();
            try{
                return Integer.parseInt(linNum);
            }catch(NumberFormatException e){
                return -1;
            }
        }
        return -1;
    }
 
}

 

分享到:
评论

相关推荐

    格式化jd-gui反编译源码的行号,便于debug调试

    需要通过jd-gui反编译的代码保存为zip文件。该工具可以把通过制定文件夹把文件夹里的反编译zip文件转换到制定的输出的文件夹里。在debug的时候就可以关联到转换后的反编译源码。 包含两部分: 1. checkLineNumber....

    jd-gui反编译后注释清除工具

    清除jd-gui反编译后注释的工具 图形界面操作方便,在java环境下双击jd-gui-cleaner.jar运行后,先点input,选择源文件文件夹,再点output,选择输出文件文件夹,最后点start运行,运行后会将所有源文件夹中的文件...

    jd-gui-cleaner清除jd-gui反编译后注释的工具v1.3.2

    jd-gui-cleaner 清除jd-gui反编译后注释的工具图形界面,操作方便在java环境下双击运行运行后,先点input,选择源文件文件夹,再点output,选择输出文件文件夹,最后点start运行。运行后会将所有源文件夹中的文件...

    jd-gui-cleaner清除jd-gui反编译后注释的工具

    清除jd-gui反编译后注释的工具 图形界面,操作方便 在java环境下双击运行 运行后,先点input,选择源文件文件夹,再点output,选择输出文件文件夹,最后点start运行。 运行后会将所有源文件夹中的文件处理后保存到...

    java反编译工具以及去掉注释工具

    清除jd-gui反编译后注释的工具 图形界面,操作方便 在java环境下双击运行 运行后,先点input,选择源文件文件夹,再点output,选择输出文件文件夹,最后点start运行。 运行后会将所有源文件夹中的文件处理后保存到...

    jd-gui反编译

    这是一个好用的java class反编译工具,可以把java 字节码文件反编译成为java源文件。是一个图形界面工具

    JD-GUI反编译解析工具

    Java .Class源文件反编译解析工具,

    apk反编译源文件

    对apk文件进行反编译,得到源代码文件.并且可以使用gui工具进行查看源代码!

    Java反编译软件,jd-gui

    Java反编译软件jd-gui,点击class字节码文件即可反编译成.java源文件

    jd-gui +清理反编译生成的 注释

    jd-gui-cleaner 清除jd-gui反编译后注释的工具图形界面,操作方便在java环境下双击运行运行后,先点input,选择源文件文件夹,再点output,选择输出文件文件夹,最后点start运行。运行后会将所有源文件夹中的文件...

    jd-gui-windows-1.4.0,java反编译工具

    java反编译工具 工具:jd-gui-windows 版本:1.4 作用:将java编译后的class文件反编译为java源文件

    luac反编译工具

    反编译过程中,会在程序目录生成执行文件,反编译结束后会自动删除。 在测试过程中,发现海岛大亨解包出来的某些lua文件在反编译过程中会比较慢(cmd下执行unluac同样的情况) 导致程序看起来似乎假死,但是实际还...

    java反编译

    java反编译工具(jd-gui)是一款非常出色的电脑端java反编译工具。java反编译工具(jd-gui)拥有十分出色的反编译效率,能够有效提升整体工作的效率,节省更多时间,操作起来也相对简单,轻松进行反编译。 java反编译...

    将apk文件反编译成java源码

    把.apk文件改名为.zip,然后解压缩,得到其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件 2.把classes.dex拷贝到dex2jar.bat所在目录。 ...

    LUAC反编译

    反编译过程中,会在程序目录生成执行文件,反编译结束后会自动删除。 在测试过程中,发现海岛大亨解包出来的某些lua文件在反编译过程中会比较慢(cmd下执行unluac同样的情况) 导致程序看起来似乎假死,但是实际还...

    XJad2.2_反编译JAVA

    1、打开一个或者多个*.class文件,XJad反编译后,重命名为*.java文件, 保存至当前文件夹,并在编辑器中打开查看; 2、打开一个文件夹,XJad将该文件夹下所有*.class文件进行反编译,并保存至该文件夹下, 依据包...

    Java程序员必备 : Java反编译神器——“GUI” 资源分享

    当我们编写完成一个java类后,运行结果会得到一个class文件,这种二进制文件如果用普通记事本打开,就会出现各种乱码现象,令人十分头疼,当我们要查看.class文件的源代码时,可以通过反编译工具jd-gui实现。...

    jd反编译工具

    1、打开一个或者多个*.class文件,XJad反编译后,重命名为*.java文件,保存至当前文件夹,并在编辑器中打开查看; 2、打开一个文件夹,XJad将该文件夹下所有*.class文件进行反编译,并保存至该文件夹下,依据包路径...

    jd-gui-1.6.6.rar

    jd-gui是一个用于Java编程语言源代码“.class”文件反编译软件。 1、打开一个或者多个*.class文件,XJad反编译后,重命名为*.java文件,保存至当前文件夹,并在编辑器中打开查看; 2、打开一个文件夹,XJad将该...

    JD-GUI v0.2.8的class文件反编译工具下载.txt

    jd-gui提供图形化界面打开java编译的.class后缀文件,将它反编译成java源文件信息,如下图所示

Global site tag (gtag.js) - Google Analytics