Я пытаюсь использовать код здесь , чтобы создать простой 3D-проект с LWJGL, но код использует затмение с загруженными банками, но я хочу использовать maven для достижения своих целей.
Вот мой POM:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cubtest</groupId>
<artifactId>LwjglTest</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>LwjglTest</name>
<url>http://maven.apache.org</url><properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<natives.version>0.0.6</natives.version>
<lwjgl.version>3.0.0</lwjgl.version>
<junit.version>4.10</junit.version>
</properties>
<repositories>
<repository>
<id>mavenNatives</id>
<name>Maven Natives Repository</name>
<url>http://mavennatives.googlecode.com/svn/repo</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.slick2d</groupId>
<artifactId>slick2d-core</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>java3d</groupId>
<artifactId>vecmath</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.lwjgl</groupId>
<artifactId>lwjgl</artifactId>
<version>${lwjgl.version}</version>
</dependency>
<dependency>
<groupId>org.lwjgl</groupId>
<artifactId>lwjgl-platform</artifactId>
<version>${lwjgl.version}</version>
<classifier>natives-windows</classifier>
</dependency>
<dependency>
<groupId>org.lwjgl</groupId>
<artifactId>lwjgl-platform</artifactId>
<version>${lwjgl.version}</version>
<classifier>natives-osx</classifier>
</dependency>
<dependency>
<groupId>org.lwjgl</groupId>
<artifactId>lwjgl-platform</artifactId>
<version>${lwjgl.version}</version>
<classifier>natives-linux</classifier>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>com.googlecode.mavennatives</groupId>
<artifactId>maven-nativedependencies-plugin</artifactId>
<version>${natives.version}</version>
<executions>
<execution>
<id>unpacknatives</id>
<phase>generate-resources</phase>
<goals>
<!-- suppress MavenModelInspection (this line is for IDEA) -->
<goal>copy</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Я также должен был изменить код с помощью
System.setProperty("org.lwjgl.librarypath", "target/natives/");
, чтобы убедиться, что он может найти туземцев, используя this .К сожалению, я получил эту ошибку: Исключение в потоке "main"
java.lang.SecurityException: sealing violation: can't seal package org.lwjgl.opengl: already loaded
at java.net.URLClassLoader.getAndVerifyPackage(URLClassLoader.java:406)
at java.net.URLClassLoader.definePackageInternal(URLClassLoader.java:419)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:451)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.lwjgl.opengl.GLCapabilities.<init>(GLCapabilities.java:5904)
at org.lwjgl.opengl.GL.createCapabilities(GL.java:421)
at org.lwjgl.opengl.GL.createCapabilities(GL.java:296)
at com.cubtest.engine.io.Window.create(Window.java:50)
at com.cubtest.main.Main.run(Main.java:16)
at com.cubtest.main.Main.main(Main.java:59)
Я обнаружил this , что, кажется, указывает на то, что я загружаю два одинаковых фляги одновременноно я использую Maven, поэтому я понятия не имею, где банки можно найти еще меньше, чем я бы сделал, если бы я их нашел.