JADE-agent nicht finden können
Ich bin neu in JADE und bin mit ein bisschen Mühe be-Agenten.
Ich habe eine neue IntelliJ-Projekt und fügte hinzu, "jade.jar" und "commons-codec-1.3.jar" (ich bin mit JADE 4.1.1) in "Abhängigkeiten" und das Häkchen bei export-Kisten (ich hab auch schon versucht ohne Sie ist markiert). Ich habe dann Hinzugefügt, die "HelloWorldAgent.java" das kommt in den Beispielen zu den src. Ich die führen Sie die Konfiguration:
- Main-Klasse: jade.Boot
- Programm-Argumente: -gui testAgent:HelloWorldAgent
- Verwenden Klassenpfad des Moduls: jadeCW (meine Projekte name)
Wenn ich mit dieser Konfiguration die JADE Kerl gestartet aber es hat nicht die "HelloWorldAgent". Die Ausgabe ist:
14-Feb-2012 21:43:08 jade.core.Runtime beginContainer
INFO: ----------------------------------
This is JADE 4.1.1 - revision 6532 of 2011/11/18 16:21:34
downloaded in Open Source, under LGPL restrictions,
at http://jade.tilab.com/
----------------------------------------
Retrieving CommandDispatcher for platform null
14-Feb-2012 21:43:08 jade.imtp.leap.LEAPIMTPManager initialize
INFO: Listening for intra-platform commands on address:
- jicp://192.168.1.66:1099
14-Feb-2012 21:43:08 jade.core.BaseService init
INFO: Service jade.core.management.AgentManagement initialized
14-Feb-2012 21:43:08 jade.core.BaseService init
INFO: Service jade.core.messaging.Messaging initialized
14-Feb-2012 21:43:08 jade.core.BaseService init
INFO: Service jade.core.resource.ResourceManagement initialized
14-Feb-2012 21:43:08 jade.core.BaseService init
INFO: Service jade.core.mobility.AgentMobility initialized
14-Feb-2012 21:43:08 jade.core.BaseService init
INFO: Service jade.core.event.Notification initialized
14-Feb-2012 21:43:08 jade.mtp.http.HTTPServer <init>
INFO: HTTP-MTP Using XML parser com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser
14-Feb-2012 21:43:08 jade.core.messaging.MessagingService boot
INFO: MTP addresses: http://unknown-00-19-c5-7e-cb-4b.home:7778/acc
14-Feb-2012 21:43:08 jade.core.AgentContainerImpl startBootstrapAgents
SEVERE: Cannot create agent testAgent: Class HelloWorldAgent for agent ( agent-identifier :name testAgent@192.168.1.66:1099/JADE ) not found [nested java.lang.ClassNotFoundException: HelloWorldAgent]
14-Feb-2012 21:43:08 jade.core.AgentContainerImpl joinPlatform
INFO: --------------------------------------
Agent container Main-Container@192.168.1.66 is ready.
Das zentrale problem deutlich wird:
SEVERE: Cannot create agent testAgent: Class HelloWorldAgent for agent ( agent-identifier :name testAgent@192.168.1.66:1099/JADE ) not found [nested java.lang.ClassNotFoundException: HelloWorldAgent]
Ich habe versucht mit eclipse, aber ich bekomme das gleiche problem, ich habe auch versucht, mit einer früheren version von JADE, aber wieder kein Glück. Jede Hilfe wäre sehr geschätzt werden.
Vielen Dank
Dan
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du musst den voll qualifizierten Namen der Klasse, wenn Sie es starten. Auf meiner alten version von JADE, die
HelloWorldAgent
ist in derexamples.hello
Paket. So geben Sie die Programm-Argumente:-gui testAgent:examples.hello.HelloWorldAgent
.java -cp ~/JADE/lib/jade.jar:~/JADE/helloworldagent/: jade.Boot testAgent:HelloAgent
.Fügen Sie einfach den Paketnamen vor den Klassennamen
-gui testAgent:packageName.HelloWorldAgent
Müssen Sie hinzufügen:
Scheint es, dass die location, die ich das "jade.jar" und "commons-codec-1.3.jar" das problem war (eigentlich hatte ich Sie in /Library/Java/Extensions (in OSX lion)). Ich habe versucht, Sie zu entfernen, indem Sie irgendwo anders hin und versuchte es wieder und jetzt funktioniert es. Nicht ganz sicher, warum Verstand!
In meinem Fall war es einen extra Raum nach der agent-name:
Nach dem entfernen der Leerzeichen hinzufügen und das Projekt in die classpath alles richtig geklappt hat.
War ich vor einem weiteren problem, also ich dachte, ich würde schreiben das die Lösung, für die es hier so, dass es jemandem helfen kann.
Beim schreiben der Klasse-Pfad mit "cp" oder "-classpath", schreiben Sie den Pfad, bis Sie die Ausgabe-Ordner nur dem Namen nach und nicht fügen Sie die Ordner erstellt für die namespaces. Zum Beispiel, wenn Ihr agent-Klasse ist im namespace " - Beispiel.namespace" den javac-Befehl erzeugt eine directory-Struktur wie "bin\sample\namespace" und die Dateien dort ablegen. In diesem Fall zählen Sie nicht "Probe\namespace" in den class-path. Nur der Weg bis zum "bin" - Ordner der name der Ausgabe-Ordner(bin) kann unterschiedlich sein.