• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Eclipse einrichten

Kappler

Geowizard
Hier mal mein Posting aus einem anderen Thread, das dort wohl nicht so richtig aufgehoben war:


MiK schrieb:
Aber da keiner der VGA-Besitzer gerne mitentwickelt, geht es an dieser Front nur langsam voran.
Das kann ich so auch nicht auf mir sitzen lassen...

Ich habe zwar bisher mit Java noch nicht gearbeitet, aber Eclipse und das SVN hab ich schon mal zum Laufen gebracht.
Das sieht C++ doch recht ähnlich, und da kenn ich mich einigermaßen aus.
An die VGA-Geschichte werde ich mich jetzt mal so langsam rantasten.

Ein Problem hab ich jetzt zu Beginn: Mit den Batch-Dateien funktioniert das Compilieren und EXE-builden problemlos, nur wenn ich direkt aus Eclipse ausführen will, erhalte ich folgende Exception:
Code:
Exception in thread "main" java.lang.NoSuchFieldError: lockObject
	at ewe.applet.Applet.<clinit>(Applet.java)
	at Ewe.main(Ewe.java)

Muss ich hier Eclipse noch irgendwas beibringen, damit es funktioniert?
 

pfeffer

Geowizard
hmm - seltsam. Ich dachte eigentlich, das sollte nicht mehr auftreten, seit im SVN die .classpath enthalten ist. Ist die etwa falsch?

Ich hatte genau das Problem auch mal (aus dem angepinnte Thread auf der 1. Seite):
pfeffer schrieb:
so... also... nachdem ich mit Kalli telefoniert habe und er mir noch einen Tipp per Mail hat zu kommen lassen, hier noch ein Tipp, wo dran es bei mir lag, dass es nicht lief mit ecipse:

die ewe.jar muss unbedingt _über_ cachewolf im classpath unter /run/run.../Java Application/<run_config>/classpath stehen, sonst gibt es Fehlermeldungen wie
"Exception in thread 'main' java.lang.NoSuchFieldError: lockObject
at ewe.applet.Applet.<clinit>(Applet.java)
at Ewe.main(Ewe.java)",
aber auch :
"The project was not built since its build path is incomplete. Cannot find the class file for java.awt.Graphics. Fix the build path then try building this project"
ist möglich, was unter "problems" erscheint. Wenn man auf "trotzdem starten" klickt, erscheint folgende Fehlermeldung bei falscher Reihenfolge im Classpath:
"java.lang.Exception: Class not found: CacheWolf.CacheWolf
at ewe.applet.Applet.getMainWindow(Applet.java:123)
at ewe.applet.Applet.init(Applet.java:196)
at ewe.applet.Applet.main(Applet.java:725)
at Ewe.main(Ewe.java:5)"

Hoffe, das kann anderen helfen... es hat mich fast verrückt gemacht... :-(

Gruß,
Pfeffer.

PS: mit java_ewe.dll und hast Du recht, Kalli, es genügt sie in das /work-Verzeichnis zu kopieren. Übringens ist sie zu finden in "Ewe149-Developer-SDK.zip" im Verzeichnis "programs".

Hoffentlich bekommen wir es mit Deiner Hilfe hin, eine neue Anleitung zu machen, die einfach ist und funktioniert :)

Gruß,
Pfeffer.
 
OP
Kappler

Kappler

Geowizard
Im Run-Dialog finde ich einen "ClassPath", ich nehme an, das ist es was du meinst:

ClassPath.JPG


Die Reihenfolge der Einträge kann ich hier nicht ändern, da die "Up" and "Down" Buttons deaktiviert sind.

Wie gesagt, von Java hab ich keine Ahnung, deshalb weiß ich jetzt auch nicht, was es damit auf sich hat...

Die java_eve.dll habe ich jetzt übrigens auch mal in das Work-Verzeichnis kopiert, ändert aber nichts.
Muss noch irgendetwas anderes außer den per SVN geladenen Daten kopiert werden?

Den folgenden Abschnitt aus der Anleitung habe ich ausgelassen, da das builden per Batch-Datei auch so funktioniert hat:
Ausführbare Versionen erzeugen, z.B. für WinXP oder PPC
- Parallel zum CacheWolf-Verzeichnis ein Verzeichnis Ewe/programs anlegen, die Dateien finden sich im Ewe-Developer-SDK. Da dieses Verzeichnis von den Scripten relativ (also per ../Ewe/programs) angesprochen wird, auf genaue Einhaltung der Namen achten...
...
...
Ist das trotzdem notwendig?
 

pfeffer

Geowizard
Kappler schrieb:
Muss noch irgendetwas anderes außer den per SVN geladenen Daten kopiert werden?

Den folgenden Abschnitt aus der Anleitung habe ich ausgelassen, da das builden per Batch-Datei auch so funktioniert hat:
Ausführbare Versionen erzeugen, z.B. für WinXP oder PPC
- Parallel zum CacheWolf-Verzeichnis ein Verzeichnis Ewe/programs anlegen, die Dateien finden sich im Ewe-Developer-SDK. Da dieses Verzeichnis von den Scripten relativ (also per ../Ewe/programs) angesprochen wird, auf genaue Einhaltung der Namen achten...
...
...
Ist das trotzdem notwendig?
1. nein, es sollte nichts mehr zusätzlich benötigt werden.
2. Die .dll braucht man nur, wenn man auf den seriellen Port zugreifen will.
3. Du hast recht ../Ewe/programs ist veraltet.

4. Das ist der Dialog, den ich meine. Ich habe gerade kein Eclipse vor mir - irgendwie kann man das verschieben. Probier mal, ob Du es hinbekommst und schreib dann wie.

Gruß,
Pfeffer.
 
OP
Kappler

Kappler

Geowizard
Ich habs hinbekommen :D

Einfach im Cachewolf-Verzeichnis die Datei
.classpath
editieren und hier den ewe-Eintrag nach oben setzen und es läuft:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="lib" path="lib/ewe.jar"/>
	<classpathentry kind="src" path="src"/>
	<classpathentry kind="lib" path="lib/CompileEwe.zip" sourcepath="lib/JavaEwe.zip"/>
	<classpathentry kind="lib" path="lib"/>
	<classpathentry kind="output" path="bin"/>
</classpath>

Nur sollte das jetzt noch in SVN geändert werden, damit es per default richtig ist...

Auf die einfachsten Lösungen kommt man oft zuletzt...


Etwas anderes: Wenn ich mich jetzt etwas tiefer reinlese und Fragen habe, sollte ich diese dann hier im Forum veröffentlichen oder gibt es noch so eine Art "Entwickler-Forum"?
 
OP
Kappler

Kappler

Geowizard
Das war Quatsch, was ich geschrieben habe... :oops:

Richtig ist:

Im Run-Dialog: Reiter ClassPath
Eintrag "User Entry" markieren
Button "Add JARs"
Den Ordner "cachewolf\lib" öffnen
"ewe.jar" auswählen - OK
"ewe.jar" steht jetzt ganz unten -> markieren - mit dem "Up" Button nach oberhalb des cachewolf-Eintrags verschieben

Und JETZT funktioniert alles... (Run und Debuggen)
 

UncleOwen

Geocacher
Kappler schrieb:
Das war Quatsch, was ich geschrieben habe... :oops:
Also bei mir hat die Änderung der .classpath funktioniert.

<edit>Kommando zurück. Nach einem Projekt -> clean (oder irgendwas anderem, was ein Neukompilieren zur Folge hat) fliegts einem dann um die Ohren.
 

Engywuck

Geowizard
Ich habs jetzt auch mal probiert, CacheWolf in Eclipse zum laufen zu bekommen. Den Zauber mit der Ergänzung des ClassPath im Run Dialog hab ich auch gemacht, dennoch überrascht Eclipse mich nach dem Start mit
Code:
java.lang.ExceptionInInitializerError
	at ewe.ui.ControlBase.<clinit>(ControlBase.java)
Caused by: java.lang.IllegalStateException: To run a Ewe application you must use the command line:
	java -cp ewe.jar Ewe YourClassName

	at ewe.sys.Vm.getAppletProperties(Vm.java)
	at ewe.io.File.getInfo(File.java)
	at ewe.io.FileBase.getProgramDirectory(FileBase.java)
	at ewe.sys.Vm.openRandomAccessStream(Vm.java)
	at ewe.sys.Vm.openResource(Vm.java)
	at ewe.sys.Vm.readResource(Vm.java)
	at ewe.fx.Image.<init>(Image.java)
	at ewe.fx.Image.<init>(Image.java)
	at ewe.fx.mImage.<init>(mImage.java)
	at ewe.sys.Vm.<clinit>(Vm.java)
	... 1 more
Exception in thread "main"
Hat jemand der Fachleute Tipps...?

Engywuck
 

Engywuck

Geowizard
So, ich bin ein bisschen weiter. Folgendes: In der Run Configuration in Registerkarte Main als Main Class Ewe angegeben. In Registerkarte Arguments dann als Program Arguments Cachewolf.Cachewolf angegeben.
Damit startet es zumindest und ich kann das Profil auswählen. Danach jedoch gibts folgenden Absturz:
Code:
java.lang.NullPointerException
	at ewe.fx.Mask.bitManipulate(Mask.java)
	at ewe.fx.Mask.scale(Mask.java)
	at ewe.fx.mImage.scale(mImage.java)
	at CacheWolf.AttributesSelector.showAttributePalette(AttributesSelector.java:111)
	at CacheWolf.AttributesSelector.setSelectionMasks(AttributesSelector.java:25)
	at CacheWolf.FilterScreen.<init>(FilterScreen.java:257)
	at CacheWolf.MainMenu.<init>(MainMenu.java:39)
	at CacheWolf.MainForm.doIt(MainForm.java:94)
	at CacheWolf.MainForm.<init>(MainForm.java:32)
	at CacheWolf.CacheWolf.main(CacheWolf.java:251)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at ewe.reflect.Method.invokeInThread(Method.java)
	at ewe.reflect.Method.nativeInvoke(Method.java)
	at ewe.reflect.Method.invoke(Method.java)
	at ewe.ui.mApp$1.run(mApp.java)
	at ewe.sys.Coroutine.run(Coroutine.java)
Exiting application due to exception thrown in main().

Tja... Ich glaub, da passt die Umgebung noch nicht ganz, oder...?

Grüße,
Engywuck
 

MiK

Geoguru
Ich habe Pfeffers ausführliche Beschreibung zum Einrichten von Eclipse abgetrennt und oben angepinnt:
http://www.geoclub.de/ftopic23210.html
 
Oben