Я пытаюсь воспроизвести программу openie4.0: https://github.com/knowitall/openie
Окружающая среда Убунту: 18.04, Скала: 2.10.2, Ява: 1.7.0_80, сбт: 0.13.18,
Мне удалось добраться до шага «бег с sbt:» ''' sbt 'run-main edu.knowitall.openie.OpenIECli' '''
Однако я продолжал сталкиваться с проблемой
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
когда я приступаю к созданию автономной банки при использовании:
sbt clean compile assembly
при попытке "sbt -J-Xmx2700M чистая сборка компиляции" (или больше, скажем, 10 г, у меня на компьютере 64 г) Вышеупомянутая проблема с памятью продолжается плюс:
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
[error] Not a valid command: J-Xmx10g
[error] Not a valid project ID: J-Xmx10g
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: J-Xmx10g
[error] J-Xmx10g
[error]
Это очень сбивает с толку, почему эта команда недействительна, и я не нашел для этого решения.
Позже я попытался установить универсальный JAVA_OPTS, но это не сработало. Затем я принимаю предложения от пользователя 972946 (последний), который предлагает его переопределить, поскольку настройки по умолчанию. Как установить размер кучи для sbt?.
Затем попробуйте после исправления, как он предложил, но все равно .....
env JAVA_OPTS = "-Xmx41200m" sbt clean compile assembly
Я также принял предложение Майка и Кассио по приведенной выше ссылке... совсем не работает.
Очень ценю любые предложения по этому поводу.
Большое спасибо. Гц
Согласно Баелдунг:
Попробуйте экспортировать эту переменную среды перед ее запуском:
export SBT_OPTS = "-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=10G -Xmx10G -Xms10G"
В качестве альтернативы SBT позволяет нам указать параметры JVM в файле с именем .jvmopts
. создайте файл с именем .jvmopts
в корне вашего проекта и поместите его внутрь:
-Xms1g
-Xmx4g
Если вы посмотрите на следующую строку:
[error] Not a valid command: J-Xmx10g
Ваш sbt не может разрешить это как допустимый вариант, это может быть выдано, поскольку вы используете java 7 (убедитесь, что java7 принимает -Xmx$size
в качестве допустимого аргумента), то же самое касается sbt 0.13 (который довольно старый). также должен быть файл или что-то, связанное с развертыванием (руководство, файл CI/CD или что-то еще), из которого вы можете получить помощь по запуску проекта. (если вы используете java 8, все должно быть в порядке)
Аминмал, спасибо за ответ. Наконец, я обнаружил, что это связано с тем, что локальные настройки sbt настраиваются в процессе установки ... поэтому я возвращаюсь к этому файлу и изменяю конфигурацию.