как установить jdk.attach.allowAttachSelf = true глобально - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь переместить одну из наших систем из java 8 в java 9, и примерно одна треть модульных тестов, которые работали нормально в java 8, завершается с ошибкой ниже:

java.io.IOException: Can not attach to current VM

Google взялЯ на несколько страниц, и я быстро понял, что в java 9 поведение по умолчанию было изменено, чтобы предотвратить подключение к текущей виртуальной машине и вернуться к старому способу, вам нужно установить системное свойство jdk.attach.allowAttachSelf в true.

При настройке в интелий тесты работают нормально.То же самое работает при изменении build.gradle, чтобы включить это:

test {
    jvmArgs '-Djdk.attach.allowAttachSelf=true'
}

Однако я бы предпочел иметь этот параметр глобально, поэтому мне не нужно взламывать мои build.gradle и intelij.

Я использую java 9 в Ubuntu, и я изменил /etc/profile.d/jdk.sh, чтобы включить это:

export JDK_JAVA_OPTIONS="-Djdk.attach.allowAttachSelf=true"

При запуске сборки Gradle я вижу, что настройка выбрана, потому что я получаю ниже в выводе сборки:

NOTE: Picked up JDK_JAVA_OPTIONS: -Djdk.attach.allowAttachSelf=true

Однако тесты продолжают давать сбой с тем же IOException.

Итак, что я делаю не так и как мне это исправить.

Заранее спасибо заваши входы.

...