2010-03-03 5 views
0

Java 패키지에서 현재 패키지의 모든 클래스 이름을 나열해야합니다. 일반적으로 다음 두 가지 모드로 내 앱을 실행합니다. < 1> NetBeans에서 < 2> NetBeans에서 패키지화 한 실행 가능한 jar 파일에서.Java로 현재 패키지의 모든 클래스 이름을 나열하는 방법은 무엇입니까?

내 질문은 : 어떻게 내 모드에 상관없이 내 애플 리케이션에있는 모든 클래스 이름을 나열 할 수 있도록 내 프로그램을 작성하는 것입니다. 왜냐하면 NetBeans 모드에서 실행할 때 클래스 이름을 나열하기 위해 src/디렉토리를 들여다 볼 수 있지만 다른 컴퓨터에서 패키지 실행 가능 jar 파일 모드로 실행하면 src/dir이 없기 때문에 내 프로그램 jar 항목을 나열하고 클래스 이름을 찾으면 NetBeans에서 실행될 때 작동하지 않습니다. 아직 jared되지 않았기 때문입니다.

내가 어떤 모드를 실행하고 있는지 다르게 처리하려고 시도 할 수 있다는 것을 알고 있지만 어떤 모드가 실행 중인지 몰라도 더 나은 방법이 있습니까?

http://snippets.dzone.com/posts/show/4831

내가 시도 : 다음과 같은 접근 방식은 내 문제를 해결할 경우


가 궁금 현재 패키지의 클래스를 얻기 위해 getClasses를 ("."), 그것은 작동하지 않았다, 그 이유는 무엇입니까?

프랭크

+1

중복 된 http://stackoverflow.com/questions/520328/can-you-find-all-classes-in-a-package-using-reflection. –

+0

참조 http://stackoverflow.com/questions/2366733/how-to-list-source-code-file-names-at-java-run-time – trashgod

답변

0

당신이 클래스 경로를 검색하고 각 항목에 대해 디렉토리 또는 JAR 파일을 검색 할 수있는 동적 클래스 로더를 사용하지 않는 제공.

0

패키지에있는 클래스를 알 수 없습니다. 이는 모두가 다른 클래스를 패키지에 추가 할 수 있기 때문입니다 (예 : 다른 jar 파일에서).

그러나 Java API에는 jar 파일을 조사하는 함수가 있습니다. 달리기의 방법과는 완전히 독립적이지는 않습니다.