2017-07-28 27 views

Trả lời

5

Xem documentation bạn đang liên kết đến:

hạn chế AOT hiện tại ...

không thể biên dịch mã java trong đó sử dụng các lớp học tạo động và bytecode (biểu thức lambda, gọi động).

Những giới hạn này có thể được giải quyết trong các bản phát hành trong tương lai.

Như vậy hai tiềm năng giải thích:

  1. các phương pháp mà không biên dịch rơi vào những hạn chế tiếng
  2. cách khác, một lỗi trong một "thương hiệu mới, thử nghiệm" sản phẩm

Rất có thể "tùy chọn 2" là giải thích tốt hơn - hãy xem lại liên kết của bạn.

Nó chứa một danh sách các phương pháp mà không biên soạn, cùng với lỗi xảy ra:

cat java.base-list.txt 

# jaotc: java.lang.StackOverflowError 
exclude sun.util.resources.LocaleNames.getContents()[[Ljava/lang/Object; 
exclude sun.util.resources.TimeZoneNames.getContents()[[Ljava/lang/Object; 
exclude sun.util.resources.cldr.LocaleNames.getContents()[[Ljava/lang/Object; 
exclude sun.util.resources..*.LocaleNames_.*.getContents\(\)\[\[Ljava/lang/Object; 
exclude sun.util.resources..*.LocaleNames_.*_.*.getContents\(\)\[\[Ljava/lang/Object; 
exclude sun.util.resources..*.TimeZoneNames_.*.getContents\(\)\[\[Ljava/lang/Object; 
exclude sun.util.resources..*.TimeZoneNames_.*_.*.getContents\(\)\[\[Ljava/lang/Object; 
# java.lang.Error: Trampoline must not be defined by the bootstrap classloader 
exclude sun.reflect.misc.Trampoline.<clinit>()V 
exclude sun.reflect.misc.Trampoline.invoke(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; 
# JVM asserts 
exclude com.sun.crypto.provider.AESWrapCipher.engineUnwrap([BLjava/lang/String;I)Ljava/security/Key; 
exclude sun.security.ssl.* 
exclude sun.net.RegisteredDomain.<clinit>()V 
# Huge methods 
exclude jdk.internal.module.SystemModules.descriptors()[Ljava/lang/module/ModuleDescriptor; 

Và khi bạn kiểm tra các nguồn khác nhau, ví dụ getContents() - không lambdas đó.

Vì vậy, các phương pháp mà không biên soạn là hầu gây ra bởi thực tế là trình biên dịch mới là "không chưa sẵn sàng" để biên dịch thành công tùy ý mã nguồn Java!

+0

Tôi rất cảm kích vì sự giúp đỡ của bạn. Cám ơn! – cwei

Các vấn đề liên quan