Java 8은 지원이 종료되었으며 2026년 1월 31일에
지원 중단됩니다. 지원 중단 후에는 조직에서 이전에 조직 정책을 사용하여 레거시 런타임의 배포를 다시 사용 설정한 경우에도 Java 8 애플리케이션을 배포할 수 없습니다. 기존 Java 8 애플리케이션은
지원 중단 날짜 이후에도 계속 실행되고 트래픽을 수신합니다.
지원되는 최신 Java 버전으로 마이그레이션하는 것이 좋습니다.
App Engine 자바 8 런타임 FAQ
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
아래의 질문은 App Engine 자바 8 표준 런타임에 해당하는 질문입니다.
자바 8 런타임에서 Kotlin을 사용해도 되나요?
예. GitHub 저장소에서 Kotlin 샘플을 확인하세요.
예. 내장된 Maven 통합을 사용하면 됩니다.
더 많은 웹 애플리케이션 개발 기능을 제공하고 App Engine 배포 프로세스와 더 긴밀하게 통합되는 IntelliJ Ultimate Edition을 사용해도 됩니다.
App Engine Cloud Endpoints v1.0이 자바 8 런타임에서 작동하나요?
아니요. Cloud Endpoints Frameworks 버전 2.0으로 이전해야 합니다.
리패키지 클래스에서 java.lang.NoClassDefFoundError가 발생하는 이유는 무엇인가요?
리패키지 내부 클래스(com/google/appengine/repackaged/com/google/common/collect/ImmutableList
)는 이전 버전의 App Engine API JAR에서 정의된 경우에도 자바 8 런타임에서 사용할 수 없습니다.
자바 8 앱에서 리패키지 클래스를 사용하려면 appengine-web.xml
에서 appengine.api.legacy.repackaging
을 true로 설정합니다. 예를 들면 다음과 같습니다.
<system-properties>
<property name="appengine.api.legacy.repackaging" value="true">
</system-properties>
이러한 클래스는 리패키지 클래스가 아닌 공개 클래스로 바꾸는 것이 좋습니다.
자바 8과 자바 11 사이에서 트래픽 분할을 수행할 수 있나요?
예. 각 서비스 또는 모듈 버전은 서로 다른 런타임 버전을 사용할 수 있으며 트래픽 분할이 지원됩니다.
인스턴스가 요청을 받지 않을 때 자바 8 스레드는 어떻게 처리되나요?
App Engine API로 생성된 스레드는 전처럼 계속 작동합니다.
자동 확장 |
수동 확장 |
기본 확장 |
요청이 없으므로 인스턴스가 종료됩니다. |
마지막 요청 이후에 인스턴스가 종료됩니다(기본값: 5분). |
영구적으로 실행됩니다. |
App Engine 자바 8 런타임은 다음과 같은 메타데이터 서버 URL을 지원합니다.
/computeMetadata/v1/project/numeric-project-id (pending)
/computeMetadata/v1/project/project-id
/computeMetadata/v1/instance/zone
/computeMetadata/v1/instance/service-accounts/default/aliases
/computeMetadata/v1/instance/service-accounts/default/email
/computeMetadata/v1/instance/service-accounts/default/scopes
/computeMetadata/v1/instance/service-accounts/default/token
/computeMetadata/v1/instance/service-accounts/{account}/aliases
/computeMetadata/v1/instance/service-accounts/{account}/email
/computeMetadata/v1/instance/service-accounts/{account}/scopes
/computeMetadata/v1/instance/service-accounts/{account}/token
메타데이터 서버 v1beta1
v1beta1 메타데이터 서버는 지원 중단되었으며 종료될 예정입니다. v1 이상을 사용할 수 있도록 모든 요청을 업데이트해야 합니다. 자세한 내용은 v1 메타데이터 서버 엔드포인트로 전환을 참조하세요.
/computeMetadata/v1beta1/project/numeric-project-id (pending)
/computeMetadata/v1beta1/project/project-id
/computeMetadata/v1beta1/instance/zone
/computeMetadata/v1beta1/instance/service-accounts/default/aliases
/computeMetadata/v1beta1/instance/service-accounts/default/email
/computeMetadata/v1beta1/instance/service-accounts/default/scopes
/computeMetadata/v1beta1/instance/service-accounts/default/token
/computeMetadata/v1beta1/instance/service-accounts/{account}/aliases
/computeMetadata/v1beta1/instance/service-accounts/{account}/email
/computeMetadata/v1beta1/instance/service-accounts/{account}/scopes
/computeMetadata/v1beta1/instance/service-accounts/{account}/token
내 요청에서 응답할 수 없는 이유는 무엇인가요?
요청에 스레드 풀을 만드는 경우 현재 요청이 종료되기 전에 요청을 명시적으로 종료해야 합니다.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-09-04(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[[["\u003cp\u003eKotlin is supported within the Java 8 runtime, and examples can be found in the provided GitHub repository.\u003c/p\u003e\n"],["\u003cp\u003eIntelliJ IDEA, both Community and Ultimate Editions, can be used with App Engine, with Ultimate Edition offering more advanced integration.\u003c/p\u003e\n"],["\u003cp\u003eCloud Endpoints v1.0 is not compatible with the Java 8 runtime; migration to Cloud Endpoints Frameworks version 2.0 is required.\u003c/p\u003e\n"],["\u003cp\u003eRepackaged classes are not available in Java 8 runtime unless \u003ccode\u003eappengine.api.legacy.repackaging\u003c/code\u003e is set to true in \u003ccode\u003eappengine-web.xml\u003c/code\u003e, but using public classes is the recommended approach.\u003c/p\u003e\n"],["\u003cp\u003eTraffic splitting is supported between different runtime versions, like Java 8 and Java 11, allowing each service or module version to utilize a different runtime.\u003c/p\u003e\n"]]],[],null,["# App Engine Java 8 Runtime FAQ\n\nThe following questions apply to the App Engine Java 8 standard runtime.\n\nCan I use Kotlin with the Java 8 runtime?\n-----------------------------------------\n\nYes, check out our [Kotlin samples](https://github.com/GoogleCloudPlatform/getting-started-java/tree/master/appengine-standard-java8) in the GitHub repository.\n\nCan I use IntelliJ IDEA Community Edition with App Engine?\n----------------------------------------------------------\n\nYes, using the built-in [Maven integration](/appengine/docs/legacy/standard/java/using-maven).\n\nYou can also use IntelliJ Ultimate Edition, which provides you with more web\napplication development features and has tighter integration with the\nApp Engine deployment process.\n\nDoes App Engine Cloud Endpoints v1.0 work in the Java 8 runtime?\n----------------------------------------------------------------\n\nNo. You must\n[migrate to Cloud Endpoints Frameworks version 2.0](/endpoints/docs/frameworks/legacy/v1/java/migrating).\n\nWhy do I get java.lang.NoClassDefFoundError for repackaged classes?\n-------------------------------------------------------------------\n\nRepackaged internal classes, such as\n`com/google/appengine/repackaged/com/google/common/collect/ImmutableList`,\nare not available anymore in the Java 8 runtime, even if they are defined in\nprevious versions of the App Engine API JAR.\n\nIf you need to use the repackaged classes in your Java 8 app, set\n`appengine.api.legacy.repackaging` to true in the `appengine-web.xml`. For\nexample: \n\n \u003csystem-properties\u003e\n \u003cproperty name=\"appengine.api.legacy.repackaging\" value=\"true\"\u003e\n \u003c/system-properties\u003e\n\nWe recommend that you replace these classes with the public, non-repackaged\nclasses.\n\nCan I do traffic splitting between Java 8 and Java 11?\n------------------------------------------------------\n\nYes, each service or module version can use a different runtime version, and\ntraffic splitting is supported.\n\nHow are Java 8 threads treated when an instance isn't getting requests?\n-----------------------------------------------------------------------\n\nThreads created with App Engine APIs will continue to work as before.\n\nWhat Metadata server features are supported in the App Engine Java 8 runtime?\n-----------------------------------------------------------------------------\n\nThe App Engine Java 8 runtime supports the following\n[Metadata server](/compute/docs/storing-retrieving-metadata) urls: \n\n /computeMetadata/v1/project/numeric-project-id (pending)\n /computeMetadata/v1/project/project-id\n /computeMetadata/v1/instance/zone\n /computeMetadata/v1/instance/service-accounts/default/aliases\n /computeMetadata/v1/instance/service-accounts/default/email\n /computeMetadata/v1/instance/service-accounts/default/scopes\n /computeMetadata/v1/instance/service-accounts/default/token\n /computeMetadata/v1/instance/service-accounts/{account}/aliases\n /computeMetadata/v1/instance/service-accounts/{account}/email\n /computeMetadata/v1/instance/service-accounts/{account}/scopes\n /computeMetadata/v1/instance/service-accounts/{account}/token\n\n**Metadata Server v1beta1**\n\nThe v1beta1 Metadata server is deprecated and scheduled for shutdown. Ensure\nthat you update all requests to use v1 or newer. For more information, see\n[Transitioning to the v1 metadata server endpoint](/compute/docs/storing-retrieving-metadata#transitioning). \n\n /computeMetadata/v1beta1/project/numeric-project-id (pending)\n /computeMetadata/v1beta1/project/project-id\n /computeMetadata/v1beta1/instance/zone\n /computeMetadata/v1beta1/instance/service-accounts/default/aliases\n /computeMetadata/v1beta1/instance/service-accounts/default/email\n /computeMetadata/v1beta1/instance/service-accounts/default/scopes\n /computeMetadata/v1beta1/instance/service-accounts/default/token\n /computeMetadata/v1beta1/instance/service-accounts/{account}/aliases\n /computeMetadata/v1beta1/instance/service-accounts/{account}/email\n /computeMetadata/v1beta1/instance/service-accounts/{account}/scopes\n /computeMetadata/v1beta1/instance/service-accounts/{account}/token\n\nWhy do my requests fail to respond?\n-----------------------------------\n\nIf you create a thread pool on a request, you must make sure that you explicitly\nshut it down before the current request terminates."]]