>  기사  >  Java  >  Java 오류: Java11 새 보안 옵션 오류, 처리 및 방지 방법

Java 오류: Java11 새 보안 옵션 오류, 처리 및 방지 방법

WBOY
WBOY원래의
2023-06-25 09:54:351495검색

Java는 애플리케이션 개발에 널리 사용되는 프로그래밍 언어입니다. Java 11이 도입되면서 새로운 보안 옵션이 도입되었습니다. 그러나 이러한 새로운 옵션으로 인해 몇 가지 문제가 발생할 수도 있습니다. 이 기사에서는 Java11의 새로운 보안 옵션 오류와 이를 처리하고 방지하는 방법에 대해 설명합니다.

새로운 보안 옵션

Java11의 새로운 보안 옵션은 주로 다음 세 가지 측면을 포함합니다.

  1. 애플리케이션 클래스 로더

Java11은 새로운 애플리케이션 클래스 로더를 도입하고 제어할 수 있는 몇 가지 새로운 옵션을 도입합니다. 애플리케이션 클래스 로더의 동작 . 이러한 옵션은 주로 다음과 같습니다.

  • Xshare:off 옵션은 공유 클래스 캐싱 기능을 끄는 데 사용됩니다.
  • --class-path 옵션은 애플리케이션이 로드해야 하는 클래스 경로를 지정하는 데 사용됩니다.
  • --module-path 옵션은 애플리케이션이 로드해야 하는 모듈 경로를 지정하는 데 사용됩니다.
  1. 기본 알고리즘 비활성화

SHA-1 및 MD5와 같은 일부 안전하지 않은 암호화 알고리즘은 Java11에서 기본적으로 비활성화되어 있습니다. 이러한 알고리즘을 활성화하려면 특별한 옵션이 필요합니다. 이러한 옵션은 다음과 같습니다.

  • --add-exports java.base/jdk.internal.crypto=ALL-UNNAMED 옵션은 이름이 지정되지 않은 모듈에 암호화 기능을 노출하는 데 사용됩니다.
  • --add-opens java.base/java.security=ALL-UNNAMED 옵션은 이름이 지정되지 않은 모듈에 대해 Java 보안 디렉터리를 여는 데 사용됩니다.
  1. 컴파일러 제한 사항

Java11에는 몇 가지 새로운 컴파일러 제한 사항도 도입되었습니다. 이러한 제한 사항은 주로 다음 상황에 적용됩니다.

  • sun.misc 패키지의 수업에 대한 액세스가 금지됩니다.
  • 특정 Java SE API는 금지됩니다.
  • 미공개 API 사용은 금지되어 있습니다.

Java11 새 보안 옵션 오류

Java11로 업그레이드할 때 애플리케이션 개발자에게 다음 오류가 발생할 수 있습니다.

  1. java.lang.IllegalAccessException 예외

reflection을 통해 sun.misc.Unsafe 클래스에 액세스, java.lang .IllegalAccessException 예외가 발생할 수 있습니다. 이는 Java11이 더 이상 sun.misc 패키지의 클래스에 대한 액세스를 허용하지 않기 때문입니다.

해결책: Unsafe 클래스를 안전한 메서드로 바꾸세요. 예를 들어 java.nio.Bits 또는 java.lang.invoke.VarHandle을 사용합니다.

  1. java.lang.NoClassDefFoundError 예외

java.lang.NoClassDefFoundError 예외는 애플리케이션이 애플리케이션 클래스 로더를 사용하여 클래스를 로드할 때 발생할 수 있습니다. 이는 일반적으로 공유 클래스 캐싱을 끄는 -Xshare:off 옵션을 활성화함으로써 발생합니다.

해결 방법: 다음 명령줄 옵션을 사용하여 공유 클래스 캐싱 기능을 활성화합니다.

java -Xshare:auto -jar app.jar

  1. 컴파일 오류

응용 프로그램이 Java SE API 또는 문서화되지 않은 API를 사용하려고 할 때 API를 사용하면 컴파일 오류가 발생할 수 있습니다.

해결 방법: Java 표준 라이브러리의 대체 API를 사용하거나 기능을 직접 구현하세요. 동시에 승인되지 않은 API를 사용하지 마십시오.

Java11 새 보안 옵션 오류 방지

위의 솔루션 외에도 Java11 새 보안 옵션 오류를 방지하는 데 도움이 될 수 있는 몇 가지 방법이 아래에 있습니다.

  1. 응용 프로그램을 업그레이드하세요

응용 프로그램을 최대한 많이 업그레이드하세요. Java11 옵션의 새로운 보안. 애플리케이션이 오래된 API를 사용하는 경우 애플리케이션에 더 많은 문제가 발생하게 됩니다.

  1. 새로운 보안 옵션 이해

Java11의 새로운 보안 옵션을 이해하고 올바르게 사용하는 방법을 알아보세요.

  1. 새 옵션 사용

Java 11의 새 옵션을 사용하여 애플리케이션 및 클래스 로더 동작을 제어하세요.

  1. 애플리케이션 테스트

애플리케이션을 테스트하여 새 Java11 환경에서 실행되고 새 보안 옵션을 올바르게 처리하는지 확인하세요.

결론

Java11의 새로운 보안 옵션은 Java 애플리케이션을 더욱 안전하게 만들 수 있습니다. 그러나 이러한 옵션은 몇 가지 문제를 일으킬 수도 있습니다. 이러한 옵션을 올바르게 이해하고 사용하며 애플리케이션을 테스트하면 이러한 문제를 방지하는 데 도움이 될 수 있습니다. 문제가 발생하면 애플리케이션의 원활한 실행을 보장하기 위해 시기적절한 조치를 취하여 문제를 해결해야 합니다.

위 내용은 Java 오류: Java11 새 보안 옵션 오류, 처리 및 방지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.