文档章节

java jd反编译工具 导出源码去除注释

无知的小孩
 无知的小孩
发布于 2018/11/13 19:58
字数 236
阅读 18
收藏 3

import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.LinkedList;
import java.util.List;

public class ClassToJava {

    public static void traverseFolder1(String path) {
        int fileNum = 0, folderNum = 0;
        File file = new File(path);
        if (file.exists()) {
            LinkedList<File> list = new LinkedList<File>();
            File[] files = file.listFiles();
            for (File file2 : files) {
                if (file2.isDirectory()) {
                    System.out.println("文件夹:" + file2.getAbsolutePath());
                    list.add(file2);
                    folderNum++;
                } else {
                    System.out.println("文件:" + file2.getAbsolutePath());
                    fileNum++;
                }
            }
            File temp_file;
            while (!list.isEmpty()) {
                temp_file = list.removeFirst();
                files = temp_file.listFiles();
                for (File file2 : files) {
                    if (file2.isDirectory()) {
                        System.out.println("文件夹:" + file2.getAbsolutePath());
                        list.add(file2);
                        folderNum++;
                    } else {
                        System.out.println("文件:" + file2.getAbsolutePath());
                        fileNum++;
                        write(file2.getAbsolutePath());
                    }
                }
            }
        } else {
            System.out.println("文件不存在!");
        }
        System.out.println("文件夹共有:" + folderNum + ",文件共有:" + fileNum);

    }
    
    public static void write(String path) {
        try {
            List<String> lines = Files.readAllLines(Paths.get(path), StandardCharsets.UTF_8);
            StringBuilder sb = new StringBuilder();
            int i = 0;
            int count = lines.size()-7;
            for(String line : lines){
                i ++;
                if(i>=count) {
                    break;
                }
                line = line.replaceAll("\\/\\*.*\\*\\/", "");
//                int end = line.indexOf("/*");
//                if(end>-1) {
//                    line = line.substring(13);
//                }
                sb.append(line).append("\n");
            }
            try {
                BufferedWriter bfw=Files.newBufferedWriter(Paths.get(path), StandardCharsets.UTF_8);
                bfw.write(sb.toString());
                bfw.flush();
                bfw.close();
            } catch (IOException e) {
                e.printStackTrace();
            } 
        } catch (IOException e) {
            e.printStackTrace();
        } 
    }

    public static void main(String[] args) {
        String path = "D:\\html\\tests\\caiz\\com";
        traverseFolder1(path);
    }

}

© 著作权归作者所有

共有 人打赏支持
无知的小孩
粉丝 1
博文 70
码字总数 19034
作品 0
贵阳
后端工程师
私信 提问
Eclipse下的Java反编译插件 查看源代码不再困难

Eclipse下的Java反编译插件:Eclipse Class Decompiler,整合了目前最好的2个Java反编译工具Jad和JD-Core,并且和Eclipse Class Viewer无缝集成,能够很方便的使用本插件查看类库源码,以及采...

DavidBao
2015/05/20
0
0
反编译Android App问题攻克

在这里讲述的其实是java反编译,主要是因为我是反编译人家的app源码入手的,就自然的挂起了羊头。 众所周知,通过dex2jar能将android app的dex解析为class文件jar包,然后通过jd等反编译工具...

xoHome
2014/06/13
0
20
Android的反编译和代码混淆

系列文章: Android的反编译和代码混淆 Android的打包签名 Android的多渠道打包 前言 包括以下内容 要反编译apk需要下面3个工具 反编译资源文件 反编译类文件 代码混淆 要反编译apk需要下面3...

跳动的松鼠
2017/11/21
0
0
android apk 防止反编译技术第四篇-对抗JD-GUI(转)

一、对抗JD-GUI原理 通常在对apk进行反编译的时候用到的最多的两个工具就是apk-tool和dex2jar。利用这两个工具将apk首先反编译成classes.dex然后再将classes.dex反编译成jar文件或者将apk直接...

我是IT码农
2015/05/25
0
0
Linux下反编译APK获取java代码和资源文件

一.反编译Apk得到Java源代码 工具下载:需用到dex2jar和JD-GUI这2个工具 dex2jar下载地址:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip JD-GUI下载地址: Linux版JD-GU...

长平狐
2013/07/01
740
0

没有更多内容

加载失败,请刷新页面

加载更多

IOS  学习记录

1.StackView=>IOS 9及以上支持 2.布局方式: AutoLayout / StackView 堆布局 (线性布局) 3.屏幕适配 (资源分辨率、设计分辨率、屏幕分辨率) Size Class技术 可以针对 屏幕的方向进行设置...

萨x姆
59分钟前
4
0
第四次工业革命:自主经济的崛起

https://36kr.com/p/5170370.html

shengjuntu
昨天
3
0
Cloud Native 与12-Factor

12-Factor(twelve-factor),也称为“十二要素”,是一套流行的应用程序开发原则。Cloud Native架构中使用12-Factor作为设计准则。 12-Factor 的目标在于: 使用标准化流程自动配置,从而使...

waylau
昨天
9
0
java多线程2

“非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在线程安全问题。这是因为方法内部的变量都是私有造成的。 synchronized 获取的都是对象锁。如果多个线程访问多个...

一滴水穿石
昨天
4
0
今天的学习

1,document.location.href:获取整个url 2,str.split(' '):用字符分割字符串 3,$this->load->library(' '):引用图像处理类 4,$this->load->library(' '):引用Email类 5,特殊访问指针$th......

墨冥
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部