JDK 11 компилирует файлы классов с ошибкой OOM - PullRequest
0 голосов
/ 08 октября 2018

Обновлены зависимости jar для соответствия jdk 11.
Обновлен муравей до 1.10.x.
Изменено ANT_OPTS для использования до 5 ГБ памяти.
Изменено задание javac внутри скрипта сборки для использования до 5 ГБ памяти ивилка = верно.

Я получаю следующую ошибку:

[javac] Compiling 909 source files to C:\xyz\build\classes
    [javac]
    [javac]
    [javac] The system is out of resources.
    [javac] Consult the following stack trace for details.
    [javac] java.lang.OutOfMemoryError: Java heap space
    [javac]     at jdk.zipfs/jdk.nio.zipfs.ZipPath.relativize(ZipPath.java:226)
    [javac]     at jdk.compiler/com.sun.tools.javac.file.JavacFileManager$ArchiveContainer$1.preVisitDirectory(JavacFileManager.java:525)
    [javac]     at jdk.compiler/com.sun.tools.javac.file.JavacFileManager$ArchiveContainer$1.preVisitDirectory(JavacFileManager.java:521)
    [javac]     at java.base/java.nio.file.Files.walkFileTree(Files.java:2731)
    [javac]     at jdk.compiler/com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.<init>(JavacFileManager.java:520)
    [javac]     at jdk.compiler/com.sun.tools.javac.file.JavacFileManager.getContainer(JavacFileManager.java:316)
    [javac]     at jdk.compiler/com.sun.tools.javac.file.JavacFileManager.list(JavacFileManager.java:712)
    [javac]     at jdk.compiler/com.sun.tools.javac.code.ClassFinder.list(ClassFinder.java:734)
    [javac]     at jdk.compiler/com.sun.tools.javac.code.ClassFinder.scanUserPaths(ClassFinder.java:678)
    [javac]     at jdk.compiler/com.sun.tools.javac.code.ClassFinder.fillIn(ClassFinder.java:551)
    [javac]     at jdk.compiler/com.sun.tools.javac.code.ClassFinder.complete(ClassFinder.java:299)
    [javac]     at jdk.compiler/com.sun.tools.javac.code.ClassFinder$$Lambda$42/0x00000008000d6040.complete(Unknown Source)
    [javac]     at jdk.compiler/com.sun.tools.javac.code.Symtab.lambda$addRootPackageFor$8(Symtab.java:780)
    [javac]     at jdk.compiler/com.sun.tools.javac.code.Symtab$$Lambda$44/0x00000008000d5840.complete(Unknown Source)
    [javac]     at jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:642)
    [javac]     at jdk.compiler/com.sun.tools.javac.comp.Enter.visitTopLevel(Enter.java:355)
    [javac]     at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:529)
    [javac]     at jdk.compiler/com.sun.tools.javac.comp.Enter.classEnter(Enter.java:286)
    [javac]     at jdk.compiler/com.sun.tools.javac.comp.Enter.classEnter(Enter.java:301)
    [javac]     at jdk.compiler/com.sun.tools.javac.comp.Enter.complete(Enter.java:576)
    [javac]     at jdk.compiler/com.sun.tools.javac.comp.Enter.main(Enter.java:560)
    [javac]     at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:1066)
    [javac]     at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:937)
    [javac]     at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:311)
    [javac]     at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:170)
    [javac]     at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:57)
    [javac]     at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:43)

Примечание: Эта же установка продолжает нормально работать под Java 8

Обновление 1: Запуск ant с -verbose и javac в файле компоновки с verbose обеспечивает используемый путь поиска.Сравнение записей jdk8 и jdk11:

В JDK8 были следующие записи, которых не было в пути поиска jdk 11

c:\jdk1.8.0_152\jre\lib\resources.jar
c:\jdk1.8.0_152\jre\lib\rt.jar
c:\jdk1.8.0_152\jre\lib\sunrsasign.jar
c:\jdk1.8.0_152\jre\lib\jsse.jar
c:\jdk1.8.0_152\jre\lib\jce.jar
c:\jdk1.8.0_152\jre\lib\charsets.jar
c:\jdk1.8.0_152\jre\lib\jfr.jar
c:\jdk1.8.0_152\jre\classes
c:\jdk1.8.0_152\jre\lib\ext\access-bridge-64.jar
c:\jdk1.8.0_152\jre\lib\ext\cldrdata.jar
c:\jdk1.8.0_152\jre\lib\ext\dnsns.jar
c:\jdk1.8.0_152\jre\lib\ext\jaccess.jar
c:\jdk1.8.0_152\jre\lib\ext\jfxrt.jar
c:\jdk1.8.0_152\jre\lib\ext\localedata.jar
c:\jdk1.8.0_152\jre\lib\ext\nashorn.jar
c:\jdk1.8.0_152\jre\lib\ext\sunec.jar
c:\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar
c:\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar
c:\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar
c:\jdk1.8.0_152\jre\lib\ext\zipfs.jar
c:\jdk1.8.0_152\lib\tools.jar
C:\SourceRepo\xx\yy\

Последняя строка - корень проекта, где build.xmlСуществует.
После пути поиска, есть куча «загрузки ZipFileIndexFileObject ...».
Затем следует генерация файла классов моих классов.
Затем следует поместить их в банку.

Записи в jdk11, которые отсутствовали в пути поиска jdk8.

C:\jdk-11\lib\modules

Указанные выше модули не существуют.И затем происходит сбой с трассировкой стека OOM, как указано ранее.


Обновление 2 октября 17'2018:
Получил образ докера openjdk11 (linux), установил муравей на нем,смонтировал мою исходную директорию и сделал сборку муравьяРаботал нормально без проблем.Так что мне кажется, что сейчас проблема с Windows jdk11.

...