본문 바로가기
Programming/Java

Causes of getting a java.lang.VerifyError

by 빅경 2024. 5. 28.
728x90
반응형

verifyError는 클래스 파일에 구문적으로는 정확하지만 일부 의미론적 제한을 위반하는 바이트코드가 포함되어 있음을 의미합니다.

기본적으로 verifyError는 컴파일러 버그가 있거나 클래스 파일이 다른 방식으로 손상된 경우(예: RAM 결함 또는 HD 결함으로 인해)에만 발생할 수 있습니다.

다른 JDK 버전과 다른 컴퓨터에서 컴파일해 보세요.

java.lang.VerifyError 발생 원인은 아래와 같다.

1. 컴파일 시 사용한 라이브러리와 런타임 시 사용한 라이브러리 버전이 달라서 메서드 형태가 다른 경우

2. 사용한 라이브러리가 상위 버전의 JDK에서 컴파일 된 경우결국은 라이브러리 버전을 맞춰야 됨

일반적으로 컴파일러는 메서드 서명이 일치하지 않는 문제에 플래그를 지정합니다. JVM은 클래스가 로드될 때 바이트코드를 다시 확인하고, 바이트코드가 허용되어서는 안되는 작업을 시도할 때 verifyError를 발생시킵니다.

https://stackoverflow.com/questions/100107/causes-of-getting-a-java-lang-verifyerror

728x90
반응형