2017-07-28 3 views

Répondre

5

Voir la documentation vous liez:

limites AOT actuelles ...

Ne peut compiler le code Java qui utilise des classes générées dynamiquement et bytecode (expressions lambda, invoquez dynamique).

Ces limitations peuvent être corrigées dans les versions ultérieures.

Ainsi deux potentiels explications:

  1. les méthodes qui ne compilent pas tomber dans les limites connues
  2. autrement, un bogue dans un produit « tout nouveau, expérimental »

Très probablement "option 2" est la meilleure explication - voir à nouveau votre lien.

Il contient une liste des méthodes qui ne compilation, ainsi que la erreur qui se produit:

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; 

Et quand vous vérifiez les sources, par exemple getContents() - pas lambdas là.

Ainsi, les méthodes qui ne sont compilation très probablement causé par le fait que le nouveau compilateur est « pas encore prêt » pour compiler avec succès arbitraire code source Java!

+0

Je suis très apprécié pour votre aide. THX! – cwei