Jump to content

Installing and starting on headless linux not working


Recommended Posts

I can't figure out a headless way to use the installer so I'm trying to get forge up and running on a headless linux machine the same way I've done hundreds of times. Vanilla runs perfectly fine.

 

I have no forge log to attach since this is forge failing instantly and it's not generating one.

 

Execution commands I've tried:

  • java -jar minecraftforge-universal-1.6.1-8.9.0.768.jar
  • java -cp minecraft_server.jar:minecraftforge-universal-1.6.1-8.9.0.768.jar cpw.mods.fml.relauncher.ServerLaunchWrapper

 

This is the result of either of the above commands:

We appear to be missing one or more essential library files.

You will need to add them to your server before FML and Forge will run successfully.java.lang.ClassNotFoundException: net.minecraft.launchwrapper.Launch

        at java.net.URLClassLoader$1.run(Unknown Source)

        at java.net.URLClassLoader$1.run(Unknown Source)

        at java.security.AccessController.doPrivileged(Native Method)

        at java.net.URLClassLoader.findClass(Unknown Source)

        at java.lang.ClassLoader.loadClass(Unknown Source)

        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

        at java.lang.ClassLoader.loadClass(Unknown Source)

        at java.lang.Class.forName0(Native Method)

        at java.lang.Class.forName(Unknown Source)

        at cpw.mods.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:30)

        at cpw.mods.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:17)

Link to comment
Share on other sites

Copy libraries folder from client to server

Run universal jar.

Don't run the installer on headless shit because it's a GUI, ofc guis dont work on headless.

 

The universal is fine for headless as long as you have the libraries in the correct place.

 

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Or you can make your server locally on your pc, make sure it works, then copy the server files onto your headless. Would it work better?

Read the EAQ before posting! OR ELSE!

 

This isn't building better software, its trying to grab a place in the commit list of a highly visible github project.

 

www.forgeessentials.com

 

Don't PM me, I don't check this account unless I have to.

Link to comment
Share on other sites

So many question...

 

Why would you not just bundle the required libraries with the jar?

Why wouldn't there just be a way to use the forge installer via command line switches?

If the vanilla minecraft server can work without copying client files to the server why doesn't forge?

Is it really a "universal" library if it requires you to copy client files to make it work?

Link to comment
Share on other sites

Why would you not just bundle the required libraries with the jar?
Because thats 20-90MB of redundant data in EVERY download that 90% of users wouldnt need at all

Why wouldn't there just be a way to use the forge installer via command line switches?
I've actually told cpw to add this functonality to the installer, don't know what came from that.

If the vanilla minecraft server can work without copying client files to the server why doesn't forge?
You're not copying CLIENT files, you're copying Libraries, notibly, LegacyLauncher, and Scala

You could always downlaod those files manually yourself, or use the installer to download them for you.

Is it really a "universal" library if it requires you to copy client files to make it work?
Again not copying CLIENT files. Its the libraries that matter. And yes its still a universal jar because it works on both client and server.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

I used the forge installer jar to install client locally to my machine and am able to play a single player server without issue.

 

I copied the libraries folder per the instructions here and attempt to start the minecraftforge_universal jar and it throws an error message NoClassDefFoundError -

 

2013-07-06 22:20:10 [iNFO] [ForgeModLoader] Forge Mod Loader version 6.1.34.774 for Minecraft 1.6.1 loading
2013-07-06 22:20:10 [iNFO] [ForgeModLoader] Java is Java HotSpot(TM) Server VM, version 1.7.0_21, running on Linux:i386:2.6.32-042stab078.26, installed at /usr/lib/jvm/java-7-oracle/jre
2013-07-06 22:20:10 [FINE] [ForgeModLoader] Java classpath at launch is minecraftforge-universal-1.6.1-8.9.0.774.jar
2013-07-06 22:20:10 [FINE] [ForgeModLoader] Java library path at launch is /usr/java/packages/lib/i386:/lib:/usr/lib
2013-07-06 22:20:10 [FINE] [ForgeModLoader] Enabling runtime deobfuscation
2013-07-06 22:20:10 [FINEST] [ForgeModLoader] Adding coremod for loading cpw.mods.fml.relauncher.FMLCorePlugin
2013-07-06 22:20:10 [FINEST] [ForgeModLoader] Adding coremod for loading net.minecraftforge.classloading.FMLForgePlugin
2013-07-06 22:20:10 [FINE] [ForgeModLoader] All core mods are successfully located
2013-07-06 22:20:10 [FINE] [ForgeModLoader] Discovering coremods
2013-07-06 22:20:10 [FINEST] [ForgeModLoader] Registering transformer cpw.mods.fml.common.asm.transformers.PatchingTransformer
2013-07-06 22:20:10 [FINEST] [ForgeModLoader] Registering transformer cpw.mods.fml.common.asm.transformers.AccessTransformer
2013-07-06 22:20:10 [iNFO] [sTDERR] java.lang.NoClassDefFoundError: com/google/common/io/LineProcessor
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.lang.Class.getDeclaredConstructors0(Native Method)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.lang.Class.getConstructor0(Class.java:2723)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.lang.Class.newInstance0(Class.java:345)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.lang.Class.newInstance(Class.java:327)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at net.minecraft.launchwrapper.LaunchClassLoader.registerTransformer(LaunchClassLoader.java:81)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at cpw.mods.fml.relauncher.CoreModManager.handleLaunch(CoreModManager.java:137)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at cpw.mods.fml.relauncher.FMLLaunchHandler.setupHome(FMLLaunchHandler.java:90)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at cpw.mods.fml.relauncher.FMLLaunchHandler.setupServer(FMLLaunchHandler.java:74)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at cpw.mods.fml.relauncher.FMLLaunchHandler.configureForServerLaunch(FMLLaunchHandler.java:39)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at cpw.mods.fml.common.launcher.FMLServerTweaker.injectIntoClassLoader(FMLServerTweaker.java:20)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at net.minecraft.launchwrapper.Launch.launch(Launch.java:51)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at net.minecraft.launchwrapper.Launch.main(Launch.java:18)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.lang.reflect.Method.invoke(Method.java:601)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at cpw.mods.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:48)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at cpw.mods.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:17)
2013-07-06 22:20:10 [iNFO] [sTDERR] Caused by: java.lang.ClassNotFoundException: com.google.common.io.LineProcessor
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.security.AccessController.doPrivileged(Native Method)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:110)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
2013-07-06 22:20:10 [iNFO] [sTDERR]     ... 19 more
2013-07-06 22:20:10 [sEVERE] [ForgeModLoader] An error occurred trying to configure the minecraft home at /etc/minecraft/1.6.1/. for Forge Mod Loader
java.lang.NoClassDefFoundError: com/google/common/io/LineProcessor
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413)
        at java.lang.Class.getConstructor0(Class.java:2723)
        at java.lang.Class.newInstance0(Class.java:345)
        at java.lang.Class.newInstance(Class.java:327)
        at net.minecraft.launchwrapper.LaunchClassLoader.registerTransformer(LaunchClassLoader.java:81)
        at cpw.mods.fml.relauncher.CoreModManager.handleLaunch(CoreModManager.java:137)
        at cpw.mods.fml.relauncher.FMLLaunchHandler.setupHome(FMLLaunchHandler.java:90)
        at cpw.mods.fml.relauncher.FMLLaunchHandler.setupServer(FMLLaunchHandler.java:74)
        at cpw.mods.fml.relauncher.FMLLaunchHandler.configureForServerLaunch(FMLLaunchHandler.java:39)
        at cpw.mods.fml.common.launcher.FMLServerTweaker.injectIntoClassLoader(FMLServerTweaker.java:20)
        at net.minecraft.launchwrapper.Launch.launch(Launch.java:51)
        at net.minecraft.launchwrapper.Launch.main(Launch.java:18)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at cpw.mods.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:48)
        at cpw.mods.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:17)
Caused by: java.lang.ClassNotFoundException: com.google.common.io.LineProcessor
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:110)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        ... 19 more
2013-07-06 22:20:10 [iNFO] [sTDERR] A problem occurred running the Server launcher.java.lang.reflect.InvocationTargetException
2013-07-06 22:20:10 [iNFO] [sTDERR]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.lang.reflect.Method.invoke(Method.java:601)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at cpw.mods.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:48)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at cpw.mods.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:17)
2013-07-06 22:20:10 [iNFO] [sTDERR] Caused by: java.lang.NoClassDefFoundError: com/google/common/base/Throwables
2013-07-06 22:20:10 [iNFO] [sTDERR]     at cpw.mods.fml.relauncher.FMLLaunchHandler.setupHome(FMLLaunchHandler.java:96)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at cpw.mods.fml.relauncher.FMLLaunchHandler.setupServer(FMLLaunchHandler.java:74)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at cpw.mods.fml.relauncher.FMLLaunchHandler.configureForServerLaunch(FMLLaunchHandler.java:39)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at cpw.mods.fml.common.launcher.FMLServerTweaker.injectIntoClassLoader(FMLServerTweaker.java:20)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at net.minecraft.launchwrapper.Launch.launch(Launch.java:51)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at net.minecraft.launchwrapper.Launch.main(Launch.java:18)
2013-07-06 22:20:10 [iNFO] [sTDERR]     ... 6 more
2013-07-06 22:20:10 [iNFO] [sTDERR] Caused by: java.lang.ClassNotFoundException: com.google.common.base.Throwables
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.security.AccessController.doPrivileged(Native Method)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
2013-07-06 22:20:10 [iNFO] [sTDERR]     at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
2013-07-06 22:20:10 [iNFO] [sTDERR]     ... 12 more

 

Did I do something wrong with copying the libraries folder?

 

bryan@murphy:/etc/minecraft/1.6.1$ ls -l
total 1856
-rw-r--r-- 1 root root    8914 Jul  6 22:20 ForgeModLoader-server-0.log
-rw-r--r-- 1 root root       0 Jul  6 22:20 ForgeModLoader-server-0.log.lck
-rw-r--r-- 1 root root    8914 Jul  6 22:14 ForgeModLoader-server-1.log
-rw-r--r-- 1 root root    8914 Jul  6 22:09 ForgeModLoader-server-2.log
drwxrwxrwx 8 root root    4096 Jul  6 21:57 libraries
-rw-r--r-- 1 root root 1851311 Jul  6 21:58 minecraftforge-universal-1.6.1-8.9.0.774.jar
drwxr-xr-x 2 root root    4096 Jul  6 22:09 mods
-rwxr-xr-x 1 root root      82 Jul  6 22:09 startmc.sh
bryan@murphy:/etc/minecraft/1.6.1$ ls libraries
argo  com  commons-io  lzma  net  org

 

Thanks in advance!

 

java -Xmx1024M -Xms1024M -jar minecraftforge-universal-1.6.1-8.9.0.774.jar nogui

 

(the above is the command in my startmc.sh script in case something's wrong with that)

Link to comment
Share on other sites

You don't have the minecraft_server.1.6.1.jar in the folder...

Seriously if you can't figure it.

Download the installer

Run Install Server

Copy the ENTIRE FOLDER to your server.

And run it.

 

 

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Why would you not just bundle the required libraries with the jar?
Because thats 20-90MB of redundant data in EVERY download that 90% of users wouldnt need at all

Why would 90% of forge users not need these libraries? What changed in forge that there's now an additional 20-90MB of libraries required?

 

I would redownload the libraries every time I updated forge anyway because I would have no idea if there were an added/removed/changed dependency.

 

Of course all this would be moot if there were just a way to run the universal installer on a headless machine. Your distribution model is broken if you require your users to go manually find a copy of libraries you depend on.

Link to comment
Share on other sites

Why would you not just bundle the required libraries with the jar?
Because thats 20-90MB of redundant data in EVERY download that 90% of users wouldnt need at all

Why would 90% of forge users not need these libraries? What changed in forge that there's now an additional 20-90MB of libraries required?

 

I would redownload the libraries every time I updated forge anyway because I would have no idea if there were an added/removed/changed dependency.

 

Of course all this would be moot if there were just a way to run the universal installer on a headless machine. Your distribution model is broken if you require your users to go manually find a copy of libraries you depend on.

That's the whole point of using the installer - it does all the updating for you, etc.

You can upload the libraries only once, then just update the universal jar. Forge only updates their libraries when mojang does or every major mc update.

Read the EAQ before posting! OR ELSE!

 

This isn't building better software, its trying to grab a place in the commit list of a highly visible github project.

 

www.forgeessentials.com

 

Don't PM me, I don't check this account unless I have to.

Link to comment
Share on other sites

You don't have the minecraft_server.1.6.1.jar in the folder...

Seriously if you can't figure it.

Download the installer

Run Install Server

Copy the ENTIRE FOLDER to your server.

And run it.

 

Apologies! This step (copying minecraft_server.1.6.1.jar into the folder) was not in your previous post. Never having run the universal jar separately on previous versions (only having combined the .jar files) I was not aware of this procedure, and tutorials/well-written guides for 1.6.1 Forge that aren't "use the installer.jar" are non-existent.

 

As previously mentioned, I couldn't run the installer from the server as there is no GUI.

 

Thanks for the help!

Link to comment
Share on other sites

That's the whole point of using the installer - it does all the updating for you, etc.

You can upload the libraries only once, then just update the universal jar. Forge only updates their libraries when mojang does or every major mc update.

I would *love* to use the installer, unfortunately a pretty major use case was missed while building it ;).

 

As I suspect is the case with *many* forge users, I only update forge when vanilla updates or rarely when a mod specifies a particular minimum build. So...I'll be updating the libraries with every download of forge.

Link to comment
Share on other sites

As a note a fairly SMALL use case. And we assumed server admins were smart enough to know how to manage libraries.

Either way a headless version fo the installer has been added:

https://github.com/MinecraftForge/Installer/commit/8f76329abac29a4c51ee83f5b5ec154c848d6cd5

 

The majority of users are client users.

And we do not ship libraries to the client. These libraries are download by the launcher.

We add lzma, scala, legacylauncher. LZMA and LegacyLauncher are not to large, but Scala is pretty damn big.

Also, we don't want to ship LegacyLauncher because that would be shipping Mojangs code. Which breaks the entire point of this new launching system.

 

We went after the best use case for the VAST majority of our users. And this is it.

The conversation between cpw and I was quite simple. We assumed that server admins, specifically ones who we doing things on dedicated environments such as yours. Would know how to so dimple library management.

 

Either way, your situation is handled, have fun.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


×
×
  • Create New...

Important Information

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