커맨드 라인에서 자바 프로젝트 용 콜 그래프를 만들려고합니다. 몇 가지 프로젝트를 탐구했습니다. 매번 목표로 삼을 시점이 짧아졌습니다 (이해 또는 기능). 이 작업을 수행하는 방법에 대한 간단한 지침이 유용 할 것이고 추가 목표는이 그래프의 텍스트 표현을 얻는 것입니다. 여기 커맨드 라인에서 Java 프로젝트 용 시각적 호출 그래프 만들기
내가 시도 것입니다 :
콜 그래프 : https://github.com/gousiosg/java-callgraph
이 나에게 내가 원하는 텍스트 출력을 제공하지만이 문서를 통해보고 후 (방법을 찾을 수 없습니다 시각적 (이미지 파일) 그래프 출력으로 변환합니다.
는 그을음 : http://sable.github.io/soot/
따라 오히려 어려운 것 같다 매연 문서를 통해보고 시간의 엄청난 금액을 지출 후, 나는 바이트 코드를 생성하는 수트를 얻을 수 있었다. 그러나, 나는 그것에서 콜 그래프를 만드는 방법에 대한 가이드를 찾을 수 없습니다. 나는 그것이 는 할 수있는 주요 페이지에서만보고, 나는 Google 검색에서 몇 가지 전자 메일 대화를 얻을, 모두 대답없이 그냥 질문입니다. 나는 명령을 사용하여 야간 빌드를 사용하고 있습니다 :
java -cp soot-trunk.jar soot.Main -cp . -pp HelloWorld
하여 HelloWorld 내 자바 파일의 이름입니다
, 나는의 .class 파일 출력을 얻을 수 있지만 실제 활용하는 방법을 볼 수 없습니다 콜 그래프. 이 안내서의 내용은 여기에 있습니다 : https://github.com/Sable/soot/wiki/Running-Soot. 시각화에 대한 링크를 따라 가면 링크가 깨져서 홈페이지로 리디렉션되는 것처럼 보입니다. 명령 줄 페이지에서 -cg 플래그를 사용하는 방법에 대한 정보를 볼 수 있지만 작동하려면 아무 것도 얻을 수 없습니다. - 잘못된 인수를 제안하는 옵션 구문 분석 오류가 발생합니다. https://ssebuild.cased.de/nightly/soot/doc/soot_options.htm#phase_5
검색 중 stackoverflow - 기존 답변 나는 다음과 같은 몇 가지 유사한 질문을 이미 보았습니다. Static analysis of Java call graph 그러나 대답은 "그을음 사용"또는 "콜 그래프 사용"이라고 말하면서 행운을 들이지 않고 이러한 시도를 해왔습니다. 그래프를 호출하면 텍스트가 출력됩니다.
일부 GUI 기반 소프트웨어와 이클립스 플러그인이 호출 그래프를 작성한다고하지만 명령 행에서이 작업을 수행하려고합니다.
어떤 도움이 정말 감사합니다, 가이드, 또는 전화 - 그래프 또는 그을음, 또는 다른 프로그램과 명령 집합이 정말 도움이 될 것입니다. 그것은 또한 그들의 설명서에 대한 그들의 짧은 튜토리얼 커밋 가치가있을 수 있습니다 검색 할 때 답변보다 더 많은 질문이 될 수 있습니다. 참고로
, 나는 현재 아래 매우 간단한 클래스를 시도하고있다 : 호출 그래프는 꽤 괜찮은 출력을 생성처럼
public class HelloWorld {
public static void main(String[] args) {
foo();
}
public static void foo(){
System.out.println("Hello World");
}
}
감사합니다 : 여기
그들은 콜 그래프를 표시하는 예를 언급! 아직 시도하지는 않았지만 정확히 내가 겪은 것처럼 보입니다. 이 대답은 의심 할 여지없이 잘 설명 될 것이므로이 질문을 보는 미래의 사람들을 도울 것입니다. 많은 감사합니다. – ThePerson