去掉java反编译(JD-GUI)生成的源文件中注释
来源:互联网 发布:sql必知必会 pdf 微盘 编辑:程序博客网 时间:2024/06/06 17:40
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class JDGUIRemarkRemover {private int counter = 0;public JDGUIRemarkRemover() {};public static void main(String[] args) {String filePath = ""; //放待处理的文件路径或者文件夹路径JDGUIRemarkRemover jdGUIRemarkRemover = new JDGUIRemarkRemover();if (jdGUIRemarkRemover.process(filePath)) {System.out.println("处理java文件 " + jdGUIRemarkRemover.getCounter() + "个!");} else {System.err.println("处理失败!");}}private boolean process(String s) {File f = new File(s);if (!f.exists()) {return false;}if (f.isFile()) {try {erase(f);} catch (RuntimeException ex) {System.err.println(ex.getMessage());}} else if (f.isDirectory()) {String[] fs = f.list();for (String sr : fs) {sr = f.getAbsolutePath() + File.separator + sr;process(sr);}} else {System.out.println("参数错误!");}return true;}private void erase(File f) throws RuntimeException {List<String> tmp = new ArrayList<String>();String name = f.getName();String path = f.getParent() + File.separator;BufferedReader br = null;if (!name.endsWith(".java")) {throw new RuntimeException("不是JAVA文件 : " + name);}System.out.println("处理文件[" + (path + name) + "]");try {br = new BufferedReader(new FileReader(f));String s = null;while ((s = br.readLine()) != null) {tmp.add(s);}br.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}f.delete();File copy = new File(path + name);BufferedWriter bw = null;try {copy.createNewFile();bw = new BufferedWriter(new FileWriter(copy, true));for (Iterator<String> itr = tmp.iterator(); itr.hasNext();) {String s = itr.next();if (s.contains("Location:") || s.contains("Qualified Name:")|| s.contains("JD-Core Version:")) {counter++;return;}int begin = s.indexOf("/*");int end = s.indexOf("*/");if (end != -1 && begin != -1) {s = s.substring(end - begin + 3, s.length());}bw.write(s + "\n");bw.flush();}} catch (IOException e) {e.printStackTrace();}counter++;}private int getCounter() {return counter;}}
1 0
- 去掉java反编译(JD-GUI)生成的源文件中注释
- java文件流处理jd-gui反编译后文件中每行的注释符
- 轻量级的Java反编译工具 -- JD-GUI
- java反编译之jd-gui的使用
- jd-gui反编译jar后清除后面的注释信息
- 编译+反编译+去掉jd-gui行号
- java反编译工具JD-GUI
- java反编译工具jd-gui
- Java反编译工具 JD-GUI
- java反编译工具 JD-GUI
- java 反编译工具:JD-GUI、JD-Eclipse、JD-IntelliJ
- JAVA反编译的2个利器jd-gui和JAD
- Java开发的利器: 反编译工具 JD-GUI
- java反编译工具---jd-gui.exe
- 使用JD-GUI进行java反编译
- Java 反编译 JD-GUI / Jad / JadClipse
- java反编译工具dex2jar盒jd-gui
- Java 反编译利器 JD-GUI/Jad/JadClipse
- hduoj1095(A+B for Input-Output Practice (VII))
- 2014华为机试
- LeetCode Valid Sudoku
- servlet工作原理及实例演示
- hduoj1096(A+B for Input-Output Practice (VIII))
- 去掉java反编译(JD-GUI)生成的源文件中注释
- Web开发108式
- I - The 3n + 1 problem(2.4.2)
- Linux通过该控制台的字符流 实现打印出的字符不同颜色
- Raising Modulo Numbers +快速幂取模算法
- android:clipChildren属性的分析——是否剪裁子View
- 如何优雅的研究 RGSS3 番外(一) ruby 实现的后缀自动机
- linux下搭建SVN服务器完全手册
- J - MANAGER(2.4.5)