Jump to content

Good guides for installing Forge server on ubuntu (1.18+)


Shocktonix

Recommended Posts

I know the way the install works has changed a bit in later versions but i cant seem to find any documentation that helps me, I was using the LinuxNorth tutorial but since its outdated i went off a bit on my own at the moment.
as of now im stuck on getting the server to start.

  • I have made it so that JRE is version 8 as needed
  • I have the installer run in /opt/minecraft and the libraries installed.
  • I changed the user_jvm_args to have 2gb min and 10gb max
  • I now run the command that linuxNorth has in the guide for it (im assuming outdated) seen in here --> https://pastebin.com/Qjct6HWt
    • Command:  cd /opt/minecraft && java -Xms2G -Xmx10G -jar /opt/minecraft/libraries/net/minecraftforge/forge/1.18.1-39.0.9/forge-1.18.1-39.0.9-server.jar nogui
  • tried universal.jar as well and had different error (see pastebin above) about no main manifest attribute.

I then tried to simply bash run.sh and it gave me this: (https://pastebin.com/LCcYMHeW) I ran the ls so you can see that the jvm_args txt is in that folder as well so im unsure...

Im assuming that the wrong command is whats going on, or i skipped something without realizing, any help or guides that work for ubuntu install is appreciated.

Link to comment
Share on other sites

  • 3 weeks later...
  • 7 months later...

Forge for 1.18+ es quite different and requires some extra steps. This is how I did to install forge in mi AWS EC2 server running Ubuntu 20.04
First installed java 17 jdk and jre using:

$ sudo apt install openjdk-17-jre-headless
$ sudo apt install openjdk-17-jdk-headless

You can check what version you have installed with:

$ java -version
$ javac -version

Now for the installation of forge I first installed minecraft server vanilla to generate all the files. Then ran the installer:

$ sudo -jar forge-x.x.x-x.x.x-installer.jar --installServer

If you don't specify the installServer flag, it will try to run the installer using a GUI which will not work if you are connected through ssh to your server. If you are connected through any remote desk app you can run it without the flag.

The difference here is that it will NOT generate a forge-x.x.x-server.jar file, instead of that it will be a shell script called "run.sh". You run it like this:

$ sudo ./run.sh

Now your forge server is running!

Link to comment
Share on other sites

  • 11 months later...
On 9/14/2022 at 12:21 AM, GuaKMole said:

Forge for 1.18+ es quite different and requires some extra steps. This is how I did to install forge in mi AWS EC2 server running Ubuntu 20.04
First installed java 17 jdk and jre using:

$ sudo apt install openjdk-17-jre-headless
$ sudo apt install openjdk-17-jdk-headless

You can check what version you have installed with:

$ java -version
$ javac -version

Now for the installation of forge I first installed minecraft server vanilla to generate all the files. Then ran the installer:

$ sudo -jar forge-x.x.x-x.x.x-installer.jar --installServer

If you don't specify the installServer flag, it will try to run the installer using a GUI which will not work if you are connected through ssh to your server. If you are connected through any remote desk app you can run it without the flag.

The difference here is that it will NOT generate a forge-x.x.x-server.jar file, instead of that it will be a shell script called "run.sh". You run it like this:

$ sudo ./run.sh

Now your forge server is running!

I just do not understand why you should install, and run your forge server in sudo mode. It just makes modifying files harder and if a security issue gets discovered by hackers that allow them to execute commands on the server, they would have all access to it.
Please use sudo only when it's needed.

Thanks, and have a good day.

  • Like 1
Link to comment
Share on other sites

  • 1 year later...

DON'T install with sudo, install in a folder in your home directory, and leave out the sudo. 

$ sudo -jar forge-x.x.x-x.x.x-installer.jar --installServer

Don't do that

just do this

$ java -jar forge-x.x.x-x.x.x-installer.jar --installServer

then run it with ./run.sh so it's not in root mode. 

using sudo will also cause some of the files to be unavailable if you are using a folder in your home director like I am.

Edited by Stresser
clarity and spelling
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • The Advanced Solar Panels and the IC2 build are not matching - try different builds of these mods until you find a working combination
    • Minecraft 1.12.2 Forge 14.23.5.2860   Description: There was a severe problem during mod loading that has caused the game to fail net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Advanced Solar Panels (advanced_solar_panels) Caused by: java.lang.NoClassDefFoundError: ic2/core/block/IInventorySlotHolder at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) at java.lang.Class.getConstructor0(Class.java:3075) at java.lang.Class.newInstance(Class.java:412) at com.chocohead.advsolar.tiles.TEs.buildDummies(TEs.java:124) at com.chocohead.advsolar.AdvancedSolarPanels.init(AdvancedSolarPanels.java:125) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:637) at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) at com.google.common.eventbus.EventBus.post(EventBus.java:217) at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:219) at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) at com.google.common.eventbus.EventBus.post(EventBus.java:217) at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:136) at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:749) at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:336) at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:535) at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:378) at net.minecraft.client.main.Main.main(SourceFile:123) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) Caused by: java.lang.ClassNotFoundException: ic2.core.block.IInventorySlotHolder at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 46 more Caused by: java.lang.NullPointerException
    • You can try other builds of Quark/Zeta
    • Hello all, I recently tried to upgrade my Minecraft mod to version 1.21.3, and I seem to have a problem with the `RenderSystem#setShaderColor` method. Here is how the screen is usually supposed to look like: Here is how it looks at present: To further explain, the note labels atop of the note buttons are colored cyan (here) using `RenderSystem#setShaderColor`. The note buttons and labels get their colors from their native texture - white. This means that even though I set the coloring to apply to the label (top), it is applied to the button (bottom). What I conclude is happening then, in essence, is that this method (at least for my case) does not color the blit after - but rather the blit before..?  This also blocks me from later resetting the shader, as I need to set it back to white before the blitting is done, and not when it's done. So like... what? I've tested this further with other components that require this method, and this preceding-like behavior seems to be pretty consistent for them too.   I should mention that all the snippets I am about to show have all worked in past versions. In my class `ClientUtil`, the following methods are defined: public static void setShaderColor(final Color color, final float alpha) { RenderSystem.setShaderColor( color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, alpha ); } public static void setShaderColor(final Color color) { setShaderColor(color, 1); } public static void resetShaderColor() { setShaderColor(Color.WHITE); } //... public static RenderType guiRT(final ResourceLocation loc) { return RenderType.guiTextured(loc); } And here is the snippet from `NoteButtonRenderer#renderNote` using it: // "Note" here refers to those symbols in the middle of a note button protected void renderNote(final GuiGraphics gui, final InstrumentThemeLoader themeLoader) { final int noteWidth = noteButton.getWidth()/2, noteHeight = noteButton.getHeight()/2; ClientUtil.setShaderColor((noteButton.isPlaying() && !foreignPlaying) ? themeLoader.notePressed() : themeLoader.noteReleased() ); gui.blit(ClientUtil::guiRT, noteTextureProvider.get(), noteButton.getX() + noteWidth/2, noteButton.getY() + noteHeight/2, 0, 0, noteWidth, noteHeight, noteWidth, noteButton.getHeight()/2 ); ClientUtil.resetShaderColor(); } You may find the full source here. The odd thing is that Minecraft does seem to use this method the regular way I showed, for instance `SkyRenderer#renderSkyDisc` (not sure if I'l allowed to paste it). Could it be that I'm doing something wrong that leads to this issue..? I'm really stumped on this one.  I couldn't really find any change logs or documentation for this rendering API (even in this Fabric blog post), so I'm sorry if this seems obvious or anything.  Either way, any help would be appreciated.
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.