[위 에]자바 역 컴 파일 줄 번호 정렬 decompiler 줄 번호 제거 방법
7732 단어 eclipse역 컴 파일줄 번호jd-gui.exe
/* */ import org.dom4j.io.SAXReader;
/* */
/* */ public class ForHttpXMLAction extends HostAccessAction
/* */ {
/* 75 */ private String sendHeadFormatName = null;
/* */
/* 80 */ private String sendFormatName = "httpSendFormat";
/* */
/* 85 */ private String receiveFormatName = "httpReceiveFormat";
/* */
/* 90 */ private String receiveHeadFormatName = null;
/* */
/* 95 */ private int timeOut = 0;
/* */
/* 100 */ private String serviceName = null;
/* */
/* 105 */ private String urlEncoding = "ISO8859-1";
/* */
/* 110 */ private String encoding = "GBK";
/* */
/* 115 */ private String inputFeild = null;
/* */
/* 120 */ private String outputFeild = null;
/* */
/* 125 */ private String chanlTradNo = null;
/* */
그러나 다행히 위의 줄 번호 의 주석,예 를 들 어'/*115*/'
eclipse 디 버 깅 debug 를 편리 하 게 사용 하기 위해 서 저 는 프로그램 을 썼 습 니 다.형식 줄 번 호 를 써 서 위의 줄 번 호 를 주석 에 따라 정렬 시 켰 습 니 다.이렇게 디 버 깅 하 는 것 이 매우 편리 합 니 다.
jd-gui.exe 역 컴 파일 로 생 성 된 소스 디 렉 터 리 를 main 방법 으로 전송 하면 됩 니 다.아래 코드 는 소스 코드 와 같은 이름+bak 파일 을 생 성 합 니 다.더 이상 말 하지 않 고 코드 를 직접 보 세 요.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.core.helpers.FileUtils;
public class FormatSrc {
public static void main(String[] args) throws Exception {
doFo("H:/work/src/7sdfasdf");
}
private static String common = null;
public static void doFo(String path) {
List<File> javaFile = getJavaFile(path);
for (File file : javaFile) {
doCreateFile(file, path);
}
}
public static void doCreateFile(File file, String distDir) {
String absolutePath = file.getAbsolutePath();
Map<Integer, String> map = doFill(format(absolutePath));
List<Integer> keyList = new ArrayList<Integer>(map.keySet());
Collections.sort(keyList);
// (file.getPath());
// file.deleteOnExit();
String p1 = absolutePath.substring(0, distDir.substring(0, distDir.lastIndexOf("/")).length());
String p2 = absolutePath.substring(distDir.length() , absolutePath.length());
if (common == null) {
common = distDir.subSequence(distDir.lastIndexOf("/"), distDir.length()) + "-bak";
}
String path = p1 + "/" + common + "/" + p2;
File distFile = new File(path);
try {
org.apache.commons.io.FileUtils.forceDeleteOnExit(distFile.getParentFile());
if (!distFile.exists()) {
distFile.getParentFile().mkdirs();
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} finally {
}
Writer out = null;
BufferedWriter bw = null;
try {
out = new FileWriter(distFile);
bw = new BufferedWriter(out);
for (Integer key : keyList) {
bw.write(key + map.get(key));
bw.newLine();
bw.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (bw != null) {
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
public static Integer getLastKey(Set<Integer> keySet) {
if (keySet == null || keySet.size() == 0) {
return 0;
}
List<Integer> list = new ArrayList<Integer>(keySet);
Collections.sort(list);
Collections.reverse(list);
return list.get(0);
}
public static List<File> getJavaFile(String dir) {
List<File> javaFiles = new ArrayList<File>();
File file = new File(dir);
if (file.exists()) {
File[] list = file.listFiles();
if (list != null && list.length > 0) {
for (File f : list) {
if (f.isFile() && f.getName().lastIndexOf(".java") != -1) {
javaFiles.add(f);
} else {
List<File> javaFile = getJavaFile(f.getAbsolutePath());
if (javaFile != null) {
javaFiles.addAll(javaFile);
}
}
}
}
}
return javaFiles;
}
public static Map<Integer, String> doFill(Map<Integer, String> map) {
Map<Integer, String> _map = new Hashtable<Integer, String>();
Set<Integer> keySet = map.keySet();
int up;
int distance;
for (Integer i : keySet) {
if (i > 1) {
up = getLastKey(_map.keySet());
if (i - up > 1) {
for (int j = up + 1; j <= i - 1; j++) {
_map.put(j, "#");
}
} else {
_map.put(i, map.get(i));
}
} else {
_map.put(i, map.get(i));
}
}
return _map;
}
public static Map<Integer, String> format(String path) {
Map<Integer, String> map = new Hashtable<Integer, String>();
File file = new File(path);
Reader in = null;
BufferedReader br = null;
String oneLine = null;
String lineNum = null;
String _lineNum = null;
String lineCode = null;
boolean b = false;
boolean a = false;
try {
in = new FileReader(file);
br = new BufferedReader(in);
// /* 19 */ private static Map cacheMap = new HashMap();
int i = 1;
while ((oneLine = br.readLine()) != null && oneLine != "") {
if (StringUtils.isNotBlank(oneLine)) {
if (oneLine.lastIndexOf("*/") == -1) {
map.put(i, oneLine);
i++;
b = true;
if (oneLine.indexOf("Location:") != -1) {
break;
}
} else {
if (oneLine.indexOf("Location:") != -1) {
break;
}
_lineNum = oneLine.split("\\*/")[0];
lineNum = _lineNum.substring(2, _lineNum.length() - 1);
lineCode = oneLine.substring(_lineNum.length() + 2, oneLine.length());
lineCode = lineCode == "" ? "#" : lineCode;
if (StringUtils.isBlank(lineNum)) {
Integer lastKey = getLastKey(map.keySet());
lastKey = lastKey == null ? 0 : lastKey;
map.put(lastKey + 1, lineCode);
} else {
map.put(Integer.valueOf(StringUtils.trim(lineNum)), lineCode);
}
}
// (oneLine + " " + lineNum + " " + lineCode);
} else {
// ("---->" + oneLine + "<--------" +
// lineNum);
if (oneLine.indexOf("Location:") != -1) {
b = true;
a = true;
}
if (b && a) {
break;
} else {
map.put(i, oneLine);
i++;
}
}
}
if (oneLine == "" && a) {
map.put(i, oneLine);
i++;
}
// i = 1;
} catch (Exception e) {
System.out.println("----->" + oneLine + "<--------");
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
return map;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
m1 이클립스에 oracle cloud (오라클 클라우드)연결하기m1에는 oracle이 설치되지 않는다.... 큰맘먹고 지른 m1인데 oracle이 설치되지 않는다니... 하지만 이뻐서 용서가 된다. 이거 때문에 웹 개발 국비수업을 듣는 도중에 몇번 좌절하고 스트레스를 크게 받았...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.