Упаковка JOGL в толстую банку - PullRequest
0 голосов
/ 04 октября 2018

Я использую Processing в своем приложении Java 8, и оно хорошо работает на IntelliJ.Проблема возникает после того, как Gradle экспортирует зависимости упаковки jar (код ниже) для всех платформ:

jar {
    baseName = applicationName
    version = actualVersion
    manifest { attributes 'Main-Class': mainClassName }
    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

Всякий раз, когда я пытаюсь открыть окно, расширяющее PApplet, возникает это исключение:

com.jogamp.opengl.GLException: Профили [GL4bc, GL4, GL3bc, GL3, GLES3, GL2, GLES2] недоступны на устройстве WindowsGraphicsDevice [тип .windows, деконструкция соединения, unitID 0, дескриптор 0x0, владелец false, NullToolkitLock [obj 0x76dc78af]] в com.jogamp.opengl.GLProfile.get (GLProfile.java:1039) в com.jogamp.opengl.GLProfile.get (GLProfile.java:1050) в com.jogamp.opengl.GLProfile.getMaxProgrammable (GLProfile).java: 826) при обработке.at processing.core.PApplet.runSketch (PApplet.java:10764) на processing.core.PApplet.main (PApplet.java:10501) на processing.core.PApplet.main (PApplet.java:10483)

Вот мои зависимости

dependencies {
    compile 'org.processing:core:3.3.5'
    compile 'org.jogamp.jogl:jogl-all:2.3.2'
    compile 'org.jogamp.gluegen:gluegen-rt:2.3.2'
    testCompile 'org.json:json:20180130'
    compile files('libs/proscene.jar', 'libs/controlP5.jar')

    runtime "org.jogamp.gluegen:gluegen-rt:2.3.2:natives-macosx-universal"
    runtime "org.jogamp.gluegen:gluegen-rt:2.3.2:natives-windows-amd64"
    runtime "org.jogamp.gluegen:gluegen-rt:2.3.2:natives-windows-i586"

    runtime "org.jogamp.jogl:jogl-all:2.3.2:natives-macosx-universal"
    // runtime "org.jogamp.jogl:jogl-all:2.3.2:natives-solaris-i586"
    runtime "org.jogamp.jogl:jogl-all:2.3.2:natives-windows-amd64"
    runtime "org.jogamp.jogl:jogl-all:2.3.2:natives-windows-i586"

    testCompile('org.junit.jupiter:junit-jupiter-api:5.1.0',
            'org.junit.jupiter:junit-jupiter-params:5.1.0')
    testRuntime('org.junit.jupiter:junit-jupiter-engine:5.1.0',
            'org.junit.platform:junit-platform-launcher:1.1.0')
}

Копаться вокруг обработки и JOGL форум не сильно помогает.Что мне делать?

P / S: одна странная вещь - экспорт толстой банки Eclipse, каким-то образом сделает jogl in jar работоспособным.

1 Ответ

0 голосов
/ 04 октября 2018

Похоже, я нашел решение.Я использовал shadow , который помогает объединить все зависимости в исполняемый толстый файл.Теперь JOGL работает отлично.

...