ich habe meinem Sohn zum Geburtstag das Buch "Programmieren lernen mit Java und Minecraft" geschenkt, wir stecken aber schon beim ersten Plugin ("Hello World") fest.
Wie im Buch empfohlen verwenden wir JEdit und haben den nachfolgenden Source Code geschrieben und 4 Fehlermeldungen erhalten.
Könnt ihr uns sagen, wo der Fehler liegt? Haben wir beim Setup etwas falsch gemacht?
Deine Klasse heißt "helloworldPlugin", liegt aber in einer Datei namens helloworldplugin.java (beachte Groß-/Kleinschreibung!).
Die Datei muss exakt so heißen (inklusive Groß-/Kleinschreibung) wie die Klasse, plus natürlich ".java".
Desweiteren, prüfe, ob c:\server\craftbukkit-1.19.3.jar auch die geforderte Datei org/bukkit/plugin/java/JavaPlugin.class enthält.
Als ich eben testweise die craftbukkit-1.19.3.jar von https://getbukkit.org/ heruntergeladen habe (über "Download latest Bukkit 1.19.3"), tat sie das nämlich nicht.
Desweiteren, prüfe, ob c:\server\craftbukkit-1.19.3.jar auch die geforderte Datei org/bukkit/plugin/java/JavaPlugin.class enthält.
Als ich eben testweise die craftbukkit-1.19.3.jar von https://getbukkit.org/ heruntergeladen habe (über "Download latest Bukkit 1.19.3"), tat sie das nämlich nicht.
Die Klasse ist in bukkit-1.19.3-R0.1-SNAPSHOT.jar - einer der Libraries in META-INF/libraries.
Die Frage ist, woher dieser Aufruf stammt. Das ist so aus meiner Sicht falsch.
craftbukkit ist der Server. Also einfach einen Ordner anlegen (minecraft oder so) und die jar da rein kopieren. Dann folgende Schritte:
- java -jar craftbukkit-1.19.3.jar
==> Das entpackt alles.
- eula.txt editieren (eula=false zu eula=true machen)
Nun kann mit java -jar craftbukkit-1.19.3.jar der Minecraft Server gestartet werden.
Die notwendige Abhängigkeit findet sich nun in bundler/libraries/bukkit-1.19.3-R0.1-SNAPSHOT.jar, wenn man da also eine TestPlugin.java in den Ordner dort legt (unsauber, aber als erster Test evtl. ok), dann kann man diese übersetzen per:
javac -cp bundler/libraries/bukkit-1.19.3-R0.1-SNAPSHOT.jar TestPlugin.java
(Unter Windows die / ggf zu \ machen wobei Windows seit vielen Jahren auch mit dem / arbeiten können sollte.)
Was für eine Installation habt ihr denn gemacht? Ich kenne das Buch nicht, aber die Aufrufe und so sind in der Art schlicht nicht korrekt.
Die Installation kann/soll über die jar Datei erfolgen, die ihr als Abhängigkeit angegeben habt. Aber die Abhängigkeit ist diese bukkit jar Datei, die dann entpackt wurde bei der Installation.
Ich habe jetzt das File umbenannt in hwp.java und in libraries-Verzeichnis kopiert.
In der ersten Zeile ist aber noch immer ein Fehler :-(
Was ich auch nicht ganz verstehe, wenn das File hwp.java heißt funktioniert der Aufruf, nenne ich es test.java oder TestPlugin.java kommt eine Fehlermeldung, dass das File nicht gefunden wurde.
Ok, die Installation ist dann im Buch aus so beschrieben, wie ich es in Kurzform angegeben habe.
Wie sieht die Datei hwp.java aus? Da bitte einmal den ganzen Inhalt posten (als Code - dazu den Knopf </> links oberhalb des Eingabebereiches nutzen). Aber da erst in Zeile 11 ein import kommt, wird in den Zeilen davor vermutlich schon irgend etwas an Code stehen. Das sorgt dann für Probleme und nach der ersten Klasse wird dann maximal eine weitere Klasse oder Interface erwartet.
Bei der Angabe der Dateien ist es wichtig, auf die Gross-/Kleinschreibung zu achten. Auch wenn man ein Dateisystem hat, das diesbezüglich keinen Unterschied macht, macht es für Java einen großen Unterschied. TestPlugin.java müsste also auch genau so benannt werden und darf nicht testplugin.java oder so heissen.
Du scheinst (vorheriger post) eine Datei hwp.java im Server Verzeichnis zu übersetzen. Laut Bildschirmfoto ist diese Datei jetzt aber nicht im Server Verzeinis sondern unter bundler\libraries.
Der Code ist aber sonst in Ordnung und liess sich bei mir erfolgreich übersetzen.
In der ersten Zeile ist aber noch immer ein Fehler :-(
Was ich auch nicht ganz verstehe, wenn das File hwp.java heißt funktioniert der Aufruf, nenne ich es test.java oder TestPlugin.java kommt eine Fehlermeldung, dass das File nicht gefunden wurde.
Wenn Du das Problem aus dem ersten Post hast, dann liegt das daran, dass der Aufruf falsch ist. Du gibst dann vermutlich so wie der Ersteller des ersten Posts die jar an, die die Installation macht. Das ist aber nicht die jar, die Du angeben musst, wenn Du etwas übersetzt!
craftbukkit-<x>.<y>.<z>.jar ist der Installer in der Version x.y.z
Für die Übersetzung musst Du aber die bukkit-<version>.jar angeben, welche nach der Installation in c:\server\bundler\libraries\ liegen sollte.
Du bist im Verzeichnis bundler\libraries - daher wird er den classpath EIntrag nicht finden. Wenn Du in bundler\libraries bist, dann wäre der Aufruf nur mit -cp .\bukkit-...... (stark gekürzt).
Dann hast Du in der Datei den Code doppelt. Der Inhalt darf nur einmal drin sein, also ab dem zweiten import muss alles weg. Das zweite import ist da nicht zulässig.
Weiterhin gibt es eine Seite (mit weiteren Handlungsanweisungen) zum Buch inkl. herunterladbarer Codes (wobei es auch sinnvoll ist, selbst Hand anzulegen): Java & Minecraft (-> "Plugins aus dem Buch", zip entpacken, im Ordner navigieren. In Kap. 3 ist der Code "nur" einmal zu sehen)