문제

Java 메인 클래스의 모든 클래스 종속성을 찾는 방법이 있습니까?

나는 메인 클래스의 수입을 수동으로 선별하고 있으며 수입이지만 동일한 패키지에있는 클래스를 가져올 필요가 없기 때문에 불완전한 목록을 작성하고 있다는 것을 깨달았습니다.

의존성을 재귀 적으로 찾을 수있는 것이 필요합니다 (아마도 정의 된 깊이까지).

도움이 되었습니까?

해결책

Javac만으로도 할 수 있습니다. 클래스 파일을 삭제 한 다음 메인 클래스를 컴파일하십시오. Javac은 필요한 클래스를 재귀 적으로 컴파일합니다 (이상하게 명명 된 파일의 패키지 개인 클래스/인터페이스를 숨기지 않도록 제공). 물론 이것은 재귀적인 해킹을 다루지 않습니다.

다른 팁

방금 찾았습니다 클래스 종속성 분석기, 다운로드, 설치 구성 및 10 분 후에는 전체 클래스 종속성 목록이 있습니다.

안에 Intellij 아이디어 당신은 닉티가 있습니다 종속성 구조 매트릭스. 패키지 및 클래스 수준 종속성을 완벽하게 탐색 할 수 있습니다. 더 간단하게 마음에 들면 종속성 뷰어도 있지만 HTERE에는 1 차 종속성 만 볼 수 있습니다.

당신은 그것을보고 싶을 수도 있습니다 jdeps 명령 줄 도구 :

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jdeps.html

jdeps -cp <your cp> -v <path to your .class file>

명령은 해당 Java 클래스 파일의 종속성 목록을 반환합니다. 명령에 사용할 수있는 다른 많은 옵션이 있습니다. -regex 주어진 패턴과 일치하는 종속성을 찾습니다

다음은 Java의 주요 메소드에 응용 프로그램의 모든 종속성에 대한 출력 경로에 넣을 수있는 코드 스 니펫입니다.

ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader) cl).getURLs();
for(URL url: urls){
    System.out.println(url.getPath());
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top