' no x11显示变量已设置为'尝试在EC2实例上运行Minecraft Server

发布于 2025-01-27 04:50:40 字数 2537 浏览 2 评论 0原文

当我尝试在EC2实例上运行Minecraft服务器时,我会遇到以下问题:

java[7261]: No X11 DISPLAY variable was set, but this program performed an operation which requires it.
java[7261]: at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
java[7261]: at java.awt.Window.<init>(Window.java:536)
java[7261]: at java.awt.Frame.<init>(Frame.java:420)
java[7261]: at java.awt.Frame.<init>(Frame.java:385)
java[7261]: at javax.swing.SwingUtilities$SharedOwnerFrame.<init>(SwingUtilities.java:1763)
java[7261]: at javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1838)
java[7261]: at javax.swing.JOptionPane.getRootFrame(JOptionPane.java:1696)
java[7261]: at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:863)
java[7261]: at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:666)
java[7261]: at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:637)
java[7261]: at net.minecraftforge.installer.SimpleInstaller.launchGui(SimpleInstaller.java:177)
java[7261]: at net.minecraftforge.installer.SimpleInstaller.main(SimpleInstaller.java:147)
systemd[1]: minecraft.service: main process exited, code=exited, status=1/FAILURE
systemd[1]: Unit minecraft.service entered failed state.
systemd[1]: minecraft.service failed.

我的用户数据脚本看起来像这样(每次启动实例时运行):

#!/usr/bin/env bash
sudo yum -y install java-1.8.0
sudo mkdir /minecraft
sudo chown -R 777 /minecraft
cd /minecraft
aws s3 cp s3://minecraft-server-v3/setup/forge-1.12.2-14.23.5.2860-installer.jar /minecraft/forge-1.12.2-14.23.5.2860-installer.jar
export DISPLAY=:0.0
java -jar forge-1.12.2-14.23.5.2860-installer.jar --installServer
echo '#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Mon Aug 06 18:11:14 UTC 2018
eula=true' > eula.txt
aws s3 cp s3://minecraft-server-v3/setup/mods.zip /minecraft/mods.zip
unzip mods.zip
sudo aws s3 cp s3://minecraft-server-v3/setup/minecraft.service /etc/systemd/system/minecraft.service
sudo chmod 777 /etc/systemd/system/minecraft.service
sudo systemctl daemon-reload
sudo service minecraft start

我的minecraft.service.service文件看起来像这样:

[Unit]
Description=Minecraft Service
After=default.target

[Service]
Type=simple
User=ec2-user
WorkingDirectory=/minecraft
ExecStart=/usr/bin/java -Xmx8G -Xms8G -jar /minecraft/forge-1.12.2-14.23.5.2860-installer.jar nogui

知道会发生什么吗?哪个操作需要显示?我很困惑。感谢任何帮助。

I run into the following issue when I try running a minecraft server on an ec2 instance:

java[7261]: No X11 DISPLAY variable was set, but this program performed an operation which requires it.
java[7261]: at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
java[7261]: at java.awt.Window.<init>(Window.java:536)
java[7261]: at java.awt.Frame.<init>(Frame.java:420)
java[7261]: at java.awt.Frame.<init>(Frame.java:385)
java[7261]: at javax.swing.SwingUtilities$SharedOwnerFrame.<init>(SwingUtilities.java:1763)
java[7261]: at javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1838)
java[7261]: at javax.swing.JOptionPane.getRootFrame(JOptionPane.java:1696)
java[7261]: at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:863)
java[7261]: at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:666)
java[7261]: at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:637)
java[7261]: at net.minecraftforge.installer.SimpleInstaller.launchGui(SimpleInstaller.java:177)
java[7261]: at net.minecraftforge.installer.SimpleInstaller.main(SimpleInstaller.java:147)
systemd[1]: minecraft.service: main process exited, code=exited, status=1/FAILURE
systemd[1]: Unit minecraft.service entered failed state.
systemd[1]: minecraft.service failed.

my user data script looks like this (run every time an instance is started):

#!/usr/bin/env bash
sudo yum -y install java-1.8.0
sudo mkdir /minecraft
sudo chown -R 777 /minecraft
cd /minecraft
aws s3 cp s3://minecraft-server-v3/setup/forge-1.12.2-14.23.5.2860-installer.jar /minecraft/forge-1.12.2-14.23.5.2860-installer.jar
export DISPLAY=:0.0
java -jar forge-1.12.2-14.23.5.2860-installer.jar --installServer
echo '#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Mon Aug 06 18:11:14 UTC 2018
eula=true' > eula.txt
aws s3 cp s3://minecraft-server-v3/setup/mods.zip /minecraft/mods.zip
unzip mods.zip
sudo aws s3 cp s3://minecraft-server-v3/setup/minecraft.service /etc/systemd/system/minecraft.service
sudo chmod 777 /etc/systemd/system/minecraft.service
sudo systemctl daemon-reload
sudo service minecraft start

and my minecraft.service file looks like this:

[Unit]
Description=Minecraft Service
After=default.target

[Service]
Type=simple
User=ec2-user
WorkingDirectory=/minecraft
ExecStart=/usr/bin/java -Xmx8G -Xms8G -jar /minecraft/forge-1.12.2-14.23.5.2860-installer.jar nogui

Any idea what could be going on? Which operation requires a display? I'm very confused. Would appreciate any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

累赘 2025-02-03 04:50:40

我理解问题的问题

是您的minecraft.service文件。

启动服务时,您正在为Forge服务器运行安装程序。

安装程序需要X,除非使用- installserver标志在用户数据脚本上完成。

这就是为什么您正在遇到错误的原因。

解决方案

我想象的

您想运行您使用的安装程序版本的实际服务器.jar,我很确定jar的名称是:

minecraftforge-universal-1.12.2-14.23.5.2860.jar

以此为例这:

/usr/bin/java -Xmx8G -Xms8G -jar minecraftforge-universal-1.12.2-14.23.5.2860.jar nogui

The problem

From my understanding the issue is with your minecraft.service file.

When you are starting the service you are running the installer for the forge server.

The installer requires X unless run with the --installServer flag as you have done above in your user data script.

This is why you are experiencing the error.

The solution

I would imagine that you want to run the actual server .jar

For the version of the installer you are using I'm pretty sure that the name for the jar is:

minecraftforge-universal-1.12.2-14.23.5.2860.jar

Using this as an example you want to replace your current command with this:

/usr/bin/java -Xmx8G -Xms8G -jar minecraftforge-universal-1.12.2-14.23.5.2860.jar nogui
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文