java - 在 Linux ( Xubuntu ) 下的Eclipse 上,LWJGL

  显示原文与译文双语对照的内容
0 0

我使用 Xubuntu,我有一个基于LibGDX的游戏项目。 在 Windows 下运行很有用。 但是我在Linux上安装了 Eclipse,当试图运行这个项目时,我得到了这个错误:


Exception in thread"main" java.lang.UnsatisfiedLinkError: Native Library/usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/libawt.so already loaded in another classloader
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1931)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1872)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:67)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:47)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.loadLibraries(Toolkit.java:1650)
at java.awt.Toolkit.<clinit>(Toolkit.java:1672)
at org.lwjgl.LinuxSysImplementation.<clinit>(LinuxSysImplementation.java:50)
at org.lwjgl.Sys.createImplementation(Sys.java:126)
at org.lwjgl.Sys.<clinit>(Sys.java:111)
at org.lwjgl.openal.AL.<clinit>(AL.java:59)
at com.badlogic.gdx.backends.lwjgl.audio.OpenALAudio.<init>(OpenALAudio.java:72)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.<init>(LwjglApplication.java:82)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.<init>(LwjglApplication.java:64)
at cz.vilix.main.Desktop.main(Desktop.java:30)

我在网上查过这个但没有结果。

第 30行( 发生错误的位置) 是我尝试运行游戏的线路:


new LwjglApplication(game = new Game(), config);

时间: 原作者:

0 0

这里问题似乎是Lwjgl试图用以下行在Linux上加载awt造成的:


java.awt.Toolkit.getDefaultToolkit();

在他们的LinuxSysImplementation

我看到了关于 LWJGL论坛的讨论,关于这个问题,还有一个潜在的解决方案。 他们谈论这是一个有问题的问题,因这里可以能考虑看看你是否可以找到不同版本的Java 。 你可以尝试oracle版本来查看问题是否仍然存在。

这不是最好的解决方案,但它似乎是由于你使用的Java版本和Linux版本的错误引起的。

编辑:

可能的解决方案是将上面的行放在用于启动libgdx的java文件的static 类初始值设定项中。 真正的目标是从抛出异常的代码行中得到,或者编辑lwjgl在抛出异常时忽略异常。


public class DesktopLauncher {
 static {
 java.awt.Toolkit.getDefaultToolkit();
 }

 public static void main(final String[] arg) {
 final LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
 new LwjglApplication(new Game(), config);
 }
}

另一个想法可能是在你的Xubuntu上安装一个不同的非无头版本的Java,这似乎暗示awt不能初始化。

0 0

我的朋友在第一节上也有同样的问题。 这帮助了他很多。 希望能帮助你。

http://javarevisited.blogspot.ca/2012/03/javalangunsatisfiedlinkerror-no-dll-in.html

...