metalim Posted December 27, 2012 Posted December 27, 2012 Sup! I'm trying to use JRebel (free Social Plan) with Minecraft Forge to make code changes without restarting Minecraft. Encountered an issue: Forge reports error during startup. Console log below: [2012-12-27 18:05:55] Contacting myJRebel server .. [2012-12-27 18:05:57] [2012-12-27 18:05:57] ############################################################# [2012-12-27 18:05:57] [2012-12-27 18:05:57] JRebel 5.1.2 (201212171004) [2012-12-27 18:05:57] © Copyright ZeroTurnaround OU, Estonia, Tartu. [2012-12-27 18:05:57] [2012-12-27 18:05:57] Over the last 1 days JRebel prevented [2012-12-27 18:05:57] at least 1 redeploys/restarts saving you about 0 hours. [2012-12-27 18:05:57] [2012-12-27 18:05:57] This product is licensed to Maxim Litvinov [2012-12-27 18:05:57] [2012-12-27 18:05:57] License acquired through myJRebel server. [2012-12-27 18:05:57] [2012-12-27 18:05:57] You are subscribed for the plan "JRebel Social Plan", [2012-12-27 18:05:57] subscription is for lifetime. [2012-12-27 18:05:57] next license check with the server is required by 2013-01-26. [2012-12-27 18:05:57] [2012-12-27 18:05:57] The following plugins are disabled at the moment: [2012-12-27 18:05:57] * Camel plugin (set -Drebel.camel_plugin=true to enable) [2012-12-27 18:05:57] * Click plugin (set -Drebel.click_plugin=true to enable) [2012-12-27 18:05:57] * JRuby Plugin (set -Drebel.jruby_plugin=true to enable) [2012-12-27 18:05:57] * Jersey plugin (set -Drebel.jersey_plugin=true to enable) [2012-12-27 18:05:57] * Oracle ADF Core plugin (set -Drebel.adf_core_plugin=true to enable) [2012-12-27 18:05:57] * Oracle ADF Faces plugin (set -Drebel.adf_faces_plugin=true to enable) [2012-12-27 18:05:57] * RESTlet plugin (set -Drebel.restlet_plugin=true to enable) [2012-12-27 18:05:57] * Seam-Wicket plugin (set -Drebel.seam_wicket_plugin=true to enable) [2012-12-27 18:05:57] * Spring Data Plugin (set -Drebel.spring_data_plugin=true to enable) [2012-12-27 18:05:57] * WebObjects plugin (set -Drebel.webobjects_plugin=true to enable) [2012-12-27 18:05:57] [2012-12-27 18:05:57] ############################################################# [2012-12-27 18:05:57] [2012-12-27 18:05:57] JRebel: Directory '/Users/metalim/Downloads/mc/forge/mcp/eclipse/Minecraft/bin' will be monitored for changes. 2012-12-27 18:05:59 [iNFO] [ForgeModLoader] Forge Mod Loader version 4.6.12.511 for Minecraft 1.4.6 loading 2012-12-27 18:05:59 [FINEST] [ForgeModLoader] All core mods are successfully located 2012-12-27 18:05:59 [FINEST] [ForgeModLoader] Discovering coremods 2012-12-27 18:05:59 [FINEST] [ForgeModLoader] Found library file argo-2.25.jar present and correct in lib dir 2012-12-27 18:05:59 [FINEST] [ForgeModLoader] Found library file guava-12.0.1.jar present and correct in lib dir 2012-12-27 18:05:59 [FINEST] [ForgeModLoader] Found library file asm-all-4.0.jar present and correct in lib dir 2012-12-27 18:05:59 [FINEST] [ForgeModLoader] Found library file bcprov-jdk15on-147.jar present and correct in lib dir 2012-12-27 18:06:07 [iNFO] [sTDERR] Exception in thread "main" java.lang.RuntimeException: java.lang.NoClassDefFoundError: com/zeroturnaround/javarebel/gen/RebelLocator$$15dcc3ca 2012-12-27 18:06:07 [iNFO] [sTDERR] at cpw.mods.fml.relauncher.FMLRelauncher.setupHome(FMLRelauncher.java:175) 2012-12-27 18:06:07 [iNFO] [sTDERR] at cpw.mods.fml.relauncher.FMLRelauncher.relaunchClient(FMLRelauncher.java:92) 2012-12-27 18:06:07 [iNFO] [sTDERR] at cpw.mods.fml.relauncher.FMLRelauncher.handleClientRelaunch(FMLRelauncher.java:26) 2012-12-27 18:06:07 [iNFO] [sTDERR] at net.minecraft.client.Minecraft.main(Minecraft.java:2235) 2012-12-27 18:06:07 [iNFO] [sTDERR] at Start.main(Start.java:29) 2012-12-27 18:06:07 [iNFO] [sTDERR] Caused by: java.lang.NoClassDefFoundError: com/zeroturnaround/javarebel/gen/RebelLocator$$15dcc3ca 2012-12-27 18:06:07 [iNFO] [sTDERR] at cpw.mods.fml.common.asm.transformers.AccessTransformer.<clinit>(AccessTransformer.java:50001) 2012-12-27 18:06:07 [iNFO] [sTDERR] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 2012-12-27 18:06:07 [iNFO] [sTDERR] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 2012-12-27 18:06:07 [iNFO] [sTDERR] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 2012-12-27 18:06:07 [iNFO] [sTDERR] at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 2012-12-27 18:06:07 [iNFO] [sTDERR] at java.lang.Class.newInstance0(Class.java:355) 2012-12-27 18:06:07 [iNFO] [sTDERR] at java.lang.Class.newInstance(Class.java:308) 2012-12-27 18:06:07 [iNFO] [sTDERR] at cpw.mods.fml.relauncher.RelaunchClassLoader.registerTransformer(RelaunchClassLoader.java:75) 2012-12-27 18:06:07 [iNFO] [sTDERR] at cpw.mods.fml.relauncher.RelaunchLibraryManager.handleLaunch(RelaunchLibraryManager.java:238) 2012-12-27 18:06:07 [iNFO] [sTDERR] at cpw.mods.fml.relauncher.FMLRelauncher.setupHome(FMLRelauncher.java:155) 2012-12-27 18:06:07 [iNFO] [sTDERR] ... 4 more 2012-12-27 18:06:07 [iNFO] [sTDERR] Caused by: java.lang.ClassNotFoundException: com.zeroturnaround.javarebel.gen.RebelLocator$$15dcc3ca 2012-12-27 18:06:07 [iNFO] [sTDERR] at cpw.mods.fml.relauncher.RelaunchClassLoader.findClass(RelaunchClassLoader.java:179) 2012-12-27 18:06:07 [iNFO] [sTDERR] at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 2012-12-27 18:06:07 [iNFO] [sTDERR] at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 2012-12-27 18:06:07 [iNFO] [sTDERR] ... 13 more 2012-12-27 18:06:07 [iNFO] [sTDERR] Caused by: java.lang.NullPointerException 2012-12-27 18:06:07 [iNFO] [sTDERR] at cpw.mods.fml.relauncher.RelaunchClassLoader.findClass(RelaunchClassLoader.java:138) 2012-12-27 18:06:07 [iNFO] [sTDERR] ... 15 more I've tested JRebel with with vanilla Minecraft (via mcp725): works fine. Question is: have any clue from the error message, how to fix that? Quote
luacs1998 Posted December 27, 2012 Posted December 27, 2012 User, developer, whatever? Quote 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.
metalim Posted December 27, 2012 Author Posted December 27, 2012 Me? Mod developer. Forge src 6.5.0: minecraftforge-src-1.4.6-6.5.0.467.zip, no other mods. JRebel 5.1.2. Eclipse Juno SR1. OSX 10.8.2. Quote
luacs1998 Posted December 27, 2012 Posted December 27, 2012 I'll raise the issue to Lex or cpw. Quote 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.
LexManos Posted December 27, 2012 Posted December 27, 2012 Why are you using JRebel? What type of environment are you in that you need it? Its a development tool that allows you to swap classes at runtime, but you know, every IDE has this functionality... Quote I do Forge for free, however the servers to run it arn't free, so anything is appreciated. Consider supporting the team on Patreon
cpw Posted December 27, 2012 Posted December 27, 2012 Not going to happen. JRebel is a custom classloader wrapped around the code it's running, and unfortunately, for FML and Forge to function, we need to break free of the core classloader framework so we can inject mods and libraries. So we'll pretty much 100% conflict with what JRebel is trying to do. I'm not about to rewrite FML either. Sorry about that. Quote
metalim Posted December 28, 2012 Author Posted December 28, 2012 LexManos: adding new methods requires app restart in Eclipse, as it prints something like "new methods not supported" cpw: can it technically be done? And on which side? Quote
keepcalm Posted December 28, 2012 Posted December 28, 2012 cpw: can it technically be done? And on which side? FML uses a custom class loader to load classes from mod files, so pretty much you'd have to merge the JRebel loader with that AFAIK. Quote Protip: try and find answers yourself before asking on the forum. It's pretty likely that there is an answer. Was I helpful? Give me a thank you! http://bit.ly/HZ03zy[/img] Tired of waiting for mods to port to bukkit? use BukkitForge! (now with a working version of WorldEdit!)
cpw Posted December 28, 2012 Posted December 28, 2012 Not going to happen sorry. I don't have the time. Pull requests are invited, but be bloody careful - this stuff is very easy to FUBAR hard. Quote
LexManos Posted December 28, 2012 Posted December 28, 2012 As cpw said, if you want to try and merge JRebel support into FML feel free to submit a PR. And you're right changing the structure of the class requires a re-launch in eclipse, however, it's not that big of a deal, and takes about 5 seconds. And you probably won't be doing it often Quote I do Forge for free, however the servers to run it arn't free, so anything is appreciated. Consider supporting the team on Patreon
ConsoleHack000 Posted August 7, 2016 Posted August 7, 2016 Don't know how but solved it. Go to File->Settings->JRebel->Advanced->and choose JRebel 6 agent as the agent. That did it for me. Quote Currently developing a mod called Lot'O'Stuff for 1.7.10 (I know very well its outdated.)
Recommended Posts
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.