'LIBGDX, MacOS M1, Lwjgl3, - problem create .jar file

New project. I'm trying to create a working .jar file - it doesn't work, it throws an error.

MacOS M1 Java 11 Zulu ARM 64

export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/ export PATH=$JAVA_HOME/bin:$PATH

or

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home/ export PATH=$JAVA_HOME/bin:$PATH

Android Gradle Plugin Vesrion - 4.2.2 Gradle Version - 6.9

If the version is increased, it gives a duplicate META-INF error:

nexus@MacBook-Pro-Igor imperialist % ./gradlew desktop:dist
> Task :desktop:dist FAILED

FAILURE: Build failed with an exception.

*What went wrong:
Execution failed for task ':desktop:dist'.
> Entry META-INF/INDEX.LIST is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.2/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.

* try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 6s
5 actionable tasks: 5 executed
nexus@MacBook-Pro-Igor imperialist %

Run commands: ./gradlew build ./gradlew desktop:dist

Result: BUILD SUCCESSFUL


Run command: java -jar -XstartOnFirstThread desktop-1.0.jar

Result:

nexus@MacBook-Pro-Igor libs % java -jar -XstartOnFirstThread desktop-1.0.jar 
Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.lwjgl.system.Pointer$Default.<clinit>(Pointer.java:67)
    at org.lwjgl.system.Callback.<clinit>(Callback.java:40)
    at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.initializeGlfw(Lwjgl3Application.java:84)
    at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.<init>(Lwjgl3Application.java:138)
    at com.nexlab.a3.desktop.DesktopLauncher.main(DesktopLauncher.java:11)
Caused by: java.lang.UnsupportedOperationException: java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    org/lwjgl/system/jni/JNINativeInterface.GetJavaVM(Lorg/lwjgl/PointerBuffer;)I @8: invokestatic
  Reason:
    Type 'org/lwjgl/PointerBuffer' (current frame, stack[0]) is not assignable to 'org/lwjgl/system/CustomBuffer'
  Current Frame:
    bci: @8
    flags: { }
    locals: { 'org/lwjgl/PointerBuffer' }
    stack: { 'org/lwjgl/PointerBuffer', integer }
  Bytecode:
    0000000: b200 0499 0008 2a04 b800 432a b800 44b8
    0000010: 0045 ac                                
  Stackmap Table:
    same_frame(@11)

    at org.lwjgl.system.MemoryUtil.<clinit>(MemoryUtil.java:130)
    ... 5 more
Caused by: java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    org/lwjgl/system/jni/JNINativeInterface.GetJavaVM(Lorg/lwjgl/PointerBuffer;)I @8: invokestatic
  Reason:
    Type 'org/lwjgl/PointerBuffer' (current frame, stack[0]) is not assignable to 'org/lwjgl/system/CustomBuffer'
  Current Frame:
    bci: @8
    flags: { }
    locals: { 'org/lwjgl/PointerBuffer' }
    stack: { 'org/lwjgl/PointerBuffer', integer }
  Bytecode:
    0000000: b200 0499 0008 2a04 b800 432a b800 44b8
    0000010: 0045 ac                                
  Stackmap Table:
    same_frame(@11)

    at org.lwjgl.system.MemoryUtil.getMarkOffset(MemoryUtil.java:3013)
    at org.lwjgl.system.MemoryUtil.<clinit>(MemoryUtil.java:115)
    ... 5 more
nexus@MacBook-Pro-Igor libs % 

Other changed settings:

Main gradle set lwjgl3 - api "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"

Gradle desktop - sourceCompatibility = 1.8

AndroidManifest.xml - activity - android:exported="true"

DesktopLauncher.java:

package com.nexlab.a3.desktop;

import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
import com.nexlab.a3.A3;

public class DesktopLauncher {

    public static void main (String[] arg) {
        Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
        new Lwjgl3Application(new A3(), config);
    }
}

The "Start" button in the IDE starts normally (there I also specify the parameter - -XstartOnFirstThread)



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source