문제

.class 파일을 검색 한 다음 컴파일 된 버전을 표시하는 도구를 아는 사람이 있습니까?

16 진 편집기에서 개별적으로 볼 수 있다는 것을 알고 있지만 살펴볼 클래스 파일이 많이 있습니다 (내 거대한 응용 프로그램의 일부가 어떤 이유로 Java6로 컴파일되고 있음).

도움이 되었습니까?

해결책

제공되는 javap 도구 사용JDK와 함께.-verbose 옵션은 클래스 파일의 버전 번호를 인쇄합니다. 라코 디스

버전 만 표시하려면 : 라코 디스

다른 팁

클래스 파일 서명 을 사용하고 타사 API없이 이러한 값을 가져옵니다. 처음 8 바이트 만 읽으면됩니다. 라코 디스

클래스 파일 버전 51.0 (Java 7)의 경우 여는 바이트는 다음과 같습니다. 라코 디스

... 여기서 0xCAFEBABE는 매직 바이트, 0x0000은 부 버전, 0x0033은 주 버전입니다. 라코 디스

워킹 디렉토리 ( 파일 ) 및 아카이브 ( JarFile )에서 클래스 찾기 파일은 사소합니다.

Oracle의 Joe Darcy의 블로그 에는 클래스 버전에서 JDK 버전으로 매핑 Java 7까지 라코 디스

유닉스 계열 라코 디스

파일 유형과 버전도 제공합니다.출력은 다음과 같습니다. <인용구>

컴파일 된 Java 클래스 데이터, 버전 49.0

유닉스 시스템을 사용하는 경우 라코 디스

(내 파일 버전은 "컴파일 된 Java 클래스 데이터, 버전 50.0"(java6 클래스의 경우))입니다.

또 다른 자바 버전 확인 라코 디스

첨부 된 출처가없는 경우 Eclipse에서.소스 첨부 버튼 다음의 첫 번째 줄에 유의하세요.

// CDestinoLog.java에서 컴파일 됨 ( 버전 1.5 : 49.0, 수퍼 비트 )

여기에 이미지 설명 입력

이것도 누군가에게 도움이 될 수 있습니다..class를 컴파일 / 빌드하는 데 사용되는 JAVA 버전을 얻는 더 쉬운 방법이있는 것 같습니다.이 방법은 JAVA 버전에서 응용 프로그램 / 클래스 자체 검사에 유용합니다.

JDK 라이브러리를 살펴본 결과 다음과 같은 유용한 상수를 찾았습니다. com.sun.deploy.config.BuiltInProperties.CURRENT_VERSION . JAVA JDK에서 언제부터인지 모르겠습니다.

여러 버전 상수에 대해이 코드를 시도하면 다음과 같은 결과가 나타납니다.

src : 라코 디스

출력 : 라코 디스

클래스 바이트 코드에는 실제로 저장된 상수가 있습니다. Main.call의 빨간색으로 표시된 부분을 참조하십시오.- constant.class 바이트 코드에 저장

Constant는 JAVA 버전이 오래되었는지 확인하는 데 사용되는 클래스에 있습니다 ( Java가 오래된 것을 확인하는 방법 ) ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top