gpt4 book ai didi

java - Linux (Xubuntu) 下 Eclipse 上的 LWJGL

转载 作者:太空宇宙 更新时间:2023-11-04 03:57:28 24 4
gpt4 key购买 nike

我正在使用 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);

最佳答案

此问题似乎是由 Lwjgl 尝试使用以下行在 Linux 上加载 awt 引起的:

java.awt.Toolkit.getDefaultToolkit();

在他们的LinuxSysImplementation

我看到有关于 LWJGL forums 的讨论关于这一点以及最后的潜在解决方案。他们说这是 headless 的一个问题,所以也许可以考虑看看是否可以找到不同版本的 Java 来使用。您可以尝试Oracle的版本看看问题是否仍然存在。

这不是最好的解决方案,但它似乎是由您正在使用的 Java 版本和特定的 Linux 版本不正确引起的。

编辑:

一种可能的解决方案是将上面的行放入用于启动 libgdx 的 java 文件的静态类初始值设定项中。实际上,目标是让该行代码不引发异常,或者编辑 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 机器上安装不同的非 headless 版本的 Java,因为这似乎表明 awt 无法初始化。

关于java - Linux (Xubuntu) 下 Eclipse 上的 LWJGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24206569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com