Я склоняюсь к проверке наличия / отсутствия некоторых системных свойств. Когда я распечатываю системные свойства в Graal AOT, я вижу:
{os.arch=x86_64, file.encoding=UTF-8, user.home=/Users/thom, path.separator=:, os.name=Mac OS X, user.dir=/Users/thom, line.separator=
, sun.jnu.encoding=UTF-8, file.separator=/, java.io.tmpdir=/var/folders/0x/rms5rjn526x33rm394xwmr8c0000gn/T/, user.name=thom}
Как вы можете заметить, он довольно короткий и пропускает все обычные java.*
, такие как java.class.path
. Я опущу список длинных версий Java и вместо ссылки на другой SO перечислю обычные свойства Java System:
Каков полный список стандартных ключей, распознаваемых методом Java System.getProperty ()?
Таким образом, один из способов сделать это - проверить, нет ли одного или нескольких свойств java.*
.
AFAIK, нет планов устанавливать их в SubstrateVM. Но системные свойства изменчивы, поэтому можно было бы подделать их.
Но в любом случае вот способ сделать это:
def isGraalAOT = System.properties.getProperty("java.class.path") == null