Talk:Robocode/Add a Robot Project

From Robowiki
< Talk:Robocode
Revision as of 19:02, 12 June 2011 by Daan (talk | contribs) (Guava sortof works now. :))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Hi all. I have some problems with it. I create an eclipse project, then copy to this project sample folder from robocode/robots (as example). Then in robocode I open options->preferences->Development options and add path to the bin folder of my project (it has the same sample folder with compiled by eclipse class files). Is this correct? The problem is that the New submenu in robocode main window remains empty after that, I don't see my classes. If there is no any custom classpath in the Development options, robocode again can see default packages without problems. What could it be? Operating system: Mandriva Linux --Eredory 18:24, 7 August 2009 (UTC)

Hm, this sounds quite odd. Perhaps set the eclipse project up so the source and the bin directories are the same? (In the new project wizard, "Use project folter as root for sources and class files" instead of "Create seperate folders for sources and class files") I've always found it works more smoothly that way. --Rednaxela 01:59, 8 August 2009 (UTC)

I use same directory for binaries as well, and also I prefer the running from Eclipse method, I think is much better. The problem is that it uses a new robot directory, so at the beginning is empty or with your robot only, but you can copy the samples or any other bots into it. What I do is remove source folder src, create a source folder called robots, exclude from robots build path ".robotcache/" (without the quotes), and the rest is set up as the page posted above. --zyx 04:39, 8 August 2009 (UTC)

Hey guys. I would like to use an external library (Google Guava) for my robot, and it seems fine in Eclipse, but when I add the class directory of Google Guava to the Development tab I get tons of errors, mostly in the form of Preventing unknown thread Robocode main thread from access: (java.lang.RuntimePermission getClassLoader). Do you perhaps have any tips for me on how to proceed? --Daan 14:51, 12 June 2011 (UTC)

Funny, I've been thinking about that same library myself recently. I guess Robocode runs the entire workspace through the security checks that Robocode uses? (Like preventing classloaders, apparently, and doing raw file I/O.) Or are you actually using classloaders? I have Eclipse's output directory set to Robocode/robots and no setting in Robocode itself, but that's probably a silly setup (and will delete your entire robots dir if you're not careful). If you want other people to run your Guava-using robot, though, you'll need to have the Guava classes you use present in your robot JAR. The Apache License appears to allow this. Maybe try just copying the packages/classes you need into your development space? Good luck, let us know what you come up with. --Voidious 16:09, 12 June 2011 (UTC)

Thanks for your response Voidious! It seems indeed to have something to do with Robocode's security manager; it has a problem with some of the classes inside guava (classes which I'm not using). After some testing I found out that if you add guava's jar to the JVM classpath it works though. :) In regard to the final robot jar; I guess I could include the contents of guava into it and perhaps use ProGuard to remove all unused classes (which would include the offending classes). --Daan 18:02, 12 June 2011 (UTC)