升级到 12.04 后,我安装了 Minecraft、Openjdk 6 和 7。登录时一切正常,但之后我得到了“正在更新 Minecraft”屏幕约 0-5 秒,然后屏幕变黑。我等了大约 5 分钟,最终 MC 崩溃并出现错误报告。
Minecraft:Minecraft 1.2.5 OS:Linux(i386)版本 3.2.1-24-generic-pae Java:1.6.0_24,Sun Microsystems Inc. VM:OpenJDK Server VM(混合模式),Sun Microsystems Inc. LWJGJ:2.4.2 [无法获取系统属性(java.lang.NullPointerException)]
org.lwjgl.LWJGLEXCEPTION:无法在 org.lwjgl.opengl.LinuxDisplayPeerInfo.initDefaultPeerInfo(本机方法)处初始化 GLX,位于 org.lwjgl.opengl.LinuxDisplayPeerInfo。(linuxDisplayPeerInfo.java:52)
报告还有更多内容,如果您希望我继续,请告诉我,我必须手动输入所有这些内容,因为我无法复制粘贴错误报告。其余行都是一堆at blah.blahblah.blah
。
答案1
在 Minecraft 1.2.5 中,LWJGL 文件已更新。Mojang 忘记使用新的 LWJGL Linux 文件更新其数据库。您需要自行更新它们(这将在 MInecraft 1.3 中修复)。以下是带有说明的 wiki 链接:http://www.minecraftwiki.net/wiki/Tutorials/Update_LWJGL
答案2
在旧版本的 Ubuntu 上,你可以使用以下命令修复此问题
sudo apt-get install sun-java6-jre sun-java6-plugin
但是这些包似乎不在 Precise 的存储库中。
答案3
当更新 ubuntu 时,我的视频卡驱动程序总是需要更新,否则在启动 minecraft 时我会遇到黑屏,然后出现错误消息。
我的建议是从你的显卡制造商那里寻找一个新的显卡驱动程序,因为他们可能会制作一个支持的 Linux 版本,(例如 Ati)
这也许能解决你的问题。如果没有,你可以随时尝试按照本指南手动更新你的 lwjgl 包:http://www.minecraftwiki.net/wiki/Tutorials/Update_LWJGL
祝你好运!
答案4
将其保存在文件中并在终端上运行以修复 Linux/Ubuntu 上的 Minecraft 黑屏
#!/usr/bin/env bash
echo "Determining OS..."
if [[ "$(uname -s)" == "Linux" ]]; then
mcdir="$HOME/.minecraft/"
elif [[ "$(uname -s)" == "Darwine" ]]; then
mcdir="$HOME/Library/Application\ Support/Minecraft/"
else
echo "OS not supported. Exploding..."
exit 1
fi
echo "Detirmining LWJGL latest version..."
latest=$(wget -q -O - http://lwjgl.org/download.php |\
grep -o "https:\/\/sourceforge.net\/projects\/java-game-lib\/files\/Official%20Releases\/LWJGL%20[0-9|\.]*")
echo "Detirmining download URL..."
dlurl=$(wget -q -O - "$latest" |\
grep -o -m1 "http://sourceforge.net/projects/java-game-lib/files/Official%20Releases/LWJGL%20[0-9|\.]*/lwjgl-[0-9|\.]*.zip")
echo "Checking if ~./cache/ exists..."
if [[ ! -d "$HOME/.cache/" ]]; then
echo "~./cache/ did not exist. Creating..."
mkdir "$HOME/.cache/"
fi
echo "Downloading latest LWJGL..."
wget -q -O "$HOME/.cache/lwjgl.zip" "$dlurl"
echo "Extracting zip file..."
unzip -qqo "$HOME/.cache/lwjgl.zip" -d "$HOME/.cache/"
lwjgldir=$(find "$HOME/.cache" -maxdepth 1 -type d -name "*lwjgl*" -print)
echo "Copying files..."
for i in "jinput" "lwjgl" "lwjgl_util"; do
echo "Copying $i..."
cp "$lwjgldir/jar/$i.jar" "$mcdir/bin/"
done
for i in "libjinput-linux" "libjinput-linux64" "liblwjgl" "liblwjgl64" "libopenal" "libopenal64"; do
echo "Copying $i..."
cp "$lwjgldir/native/linux/$i.so" "$mcdir/bin/natives/"
done