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.
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.
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?
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)