error: class, interface, or enum expected

toni_latenz

Neues Mitglied
Hallo zusammen.

Gerade versuche ich Java Programmierungsgrundlagen zu lernen. Dazu benutze ich das Buch "Programmieren lernen mit Minecraft Plugins".

Bei einer der Übungen gibt mir die Shell (Ubuntu 14.04 LTS) den folgenden Error für den nachfolgenden Code aus:

java:47: error: class, interface, or enum expected
}
^
1 error

der Code lautet:



Java:
package simple;
import net.canarymod.plugin.Plugin;
import net.canarymod.logger.Logman;
import net.canarymod.Canary;
import net.canarymod.commandsys.*;
import net.canarymod.chat.MessageReceiver;
import net.canarymod.api.entity.living.humanoid.Player;
import com.pragprog.ahmine.ez.EZPlugin;
import net.canarymod.api.world.effects.SoundEffect;
import net.canarymod.api.world.position.Location;

public class Simple extends EZPlugin
{ public static long howlong(int years)
  { return years * 365 * 24 * 60 * 60; }

  @Command(aliases = { "simple" },
  description = "simple plugin",
  permissions = { "*" },
  toolTip = "/simple")
  public void simpleCommand(MessageReceiver caller, String[] parameters)
  { if (caller instanceof Player)
  { Player me = (Player)caller;
  // Put your code after this line:

  int myage = 35;
  int twicemyage = myage * 2;
  float volume = 0.5f;
  float pitch = 1.0f;
  double dayOnIo = 152853.504;
  String myname = "Toni Latenz";
  long secondsOld = howlong(35); }

  {
  me.chat("My age is" + myage);
  me.chat("My name is" + myname);
  me.chat("My age doubled is:" + twicemyage);
  me.chat("A day on Io in seconds is:" + dayOnIo);
  me.chat("My lifetime in seconds is:" + secondsOld); }

  { Location loc = me.getLocation();
  playSound(loc, SoundEffect.Type.GHAST_SCREAM, volume, pitch);
  }

  // ...and finish your code before this line.
  }
}
}






Zeile 47, in welcher der Error scheinbar entsteht ist die letzte geschweifte Klammer....
Ich habe bereits versucht die letzte Klammer wegzulassen oder noch eine hinzuzufügen. (Man übersieht ja mal schnell was..)

Hat jemand eine Idee wo mein Fehler genau liegt?
Im Voraus besten Dank!
 
Zuletzt bearbeitet:

JStein52

Top Contributor
Formatiere deinen Code doch mal gescheit mit Einrückungen und so. Dann siehst du den Fehler wahrscheinlich auf den ersten Blick. Und lass mal diese ganzen überflüssigen Klammern weg. Die machen einen ja meschugge. ;);)
 
K

kneitzel

Gast
Also eine Klammer ist am Ende auf jeden Fall zuviel. Die Anzahl der öffnenden und schließenden Klammern muss gleich sein.

Und dann hast Du da ein paar Blöcke, die unnötig sind. Es macht keinen Sinn, Befehle einfach so in { } zu setzen.

Das Problem ist aber nicht ganz am Ende sondern der Block vom if ist zu klein. Wenn Du innerhalb von { } eine Variable definierst, dann ist diese Variable nur innerhalb dieses Blocks bekannt. Derzeit schließt Du den Block vom if nur um dann einen neuen Block zu erstellen, in dem Du die lokale Variable me erneut verwenden willst. Das geht natürlich nicht.

Also entferne die beiden "} {" Kombinationen.

Dann noch die letzte } entfernen und dann könnte es evtl. gehen mit dem compilieren.

Konrad
 

toni_latenz

Neues Mitglied
Danke JStein52 und Konrad.

Ich hab den Code nochmal formatiert und denke das er so recht gut lesbar ist. Trotzdem verlangt der javac bzw build.sh beim Kompilieren einen Semikolon an einer Stelle, an der er für mich keinen Sinn macht. Selbst wenn ich dort einen platziere, ändert das die Fehlermeldung nicht.

Hier nochmal der neu formatierte Code:

Java:
package simple;
import net.canarymod.plugin.Plugin;
import net.canarymod.logger.Logman;
import net.canarymod.Canary;
import net.canarymod.commandsys.*;
import net.canarymod.chat.MessageReceiver;
import net.canarymod.api.entity.living.humanoid.Player;
import com.pragprog.ahmine.ez.EZPlugin;
import net.canarymod.api.world.effects.SoundEffect;
import net.canarymod.api.world.position.Location;

  public class Simple extends EZPlugin {

    public static long howlong(int years) {
      return years * 365 * 24 * 60 * 60;
    }

      @Command(aliases = { "simple" },
            description = "simple plugin",
            permissions = { "*" },
            toolTip = "/simple")

            public void simpleCommand(MessageReceiver caller, String[] parameters) {
              if (caller instanceof Player) {
                Player me = (Player)caller;
      // Put your code after this line:

                int myage = 35;
                int twicemyage = myage * 2;
                float volume = 0.5f;
                float pitch = 1.0f;
                double dayOnIo = 152853.504;
                String myname = "Toni Latenz";
                long secondsOld = howlong(35);
              }

                  {
                  me.chat("My age is" + myage);
                  me.chat("My name is" + myname);
                  me.chat("My age doubled is:" + twicemyage);
                  me.chat("A day on Io in seconds is:" + dayOnIo);
                  me.chat("My lifetime in seconds is:" + secondsOld);
                  }

                    {
                    Location loc = me.getLocation();
                    playSound(loc, SoundEffect.Type.GHAST_SCREAM, volume, pitch);
                    }

      // ...and finish your code before this line.
  }
}


Die Fehlermeldung(en) der Shell beim Versuch zu Kompilieren sind folgende:

Code:
Compiling with javac...
src/simple/Simple2.java:13: error: ';' expected
{public static long howlong(int years)
                                      ^
src/simple/Simple2.java:20: error: class, interface, or enum expected
  public void simpleCommand(MessageReceiver caller, String[] parameters)
         ^
src/simple/Simple2.java:25: error: class, interface, or enum expected
      int myage = 35;
      ^
src/simple/Simple2.java:26: error: class, interface, or enum expected
      int twicemyage = myage * 2;
      ^
src/simple/Simple2.java:27: error: class, interface, or enum expected
      float volume = 0.5f;
      ^
src/simple/Simple2.java:28: error: class, interface, or enum expected
      float pitch = 1.0f;
      ^
src/simple/Simple2.java:29: error: class, interface, or enum expected
      double dayOnIo = 152853.504;
      ^
src/simple/Simple2.java:30: error: class, interface, or enum expected
      String myname = "Toni Latenz";
      ^
src/simple/Simple2.java:31: error: class, interface, or enum expected
      long secondsOld = howlong(35);
      ^
src/simple/Simple2.java:34: error: class, interface, or enum expected
      me.chat("My age is" + myage);
      ^
src/simple/Simple2.java:35: error: class, interface, or enum expected
      me.chat("My name is" + myname);
      ^
src/simple/Simple2.java:36: error: class, interface, or enum expected
      me.chat("My age doubled is:" + twicemyage);
      ^
src/simple/Simple2.java:37: error: class, interface, or enum expected
      me.chat("A day on Io in seconds is:" + dayOnIo);
      ^
src/simple/Simple2.java:38: error: class, interface, or enum expected
      me.chat("My lifetime in seconds is:" + secondsOld);
      ^
src/simple/Simple2.java:40: error: class, interface, or enum expected
      Location loc = me.getLocation();
      ^
src/simple/Simple2.java:41: error: class, interface, or enum expected
      playSound(loc, SoundEffect.Type.GHAST_SCREAM, volume, pitch);
      ^
16 errors


Was mach ich nur falsch?
 

JStein52

Top Contributor
Was ist das da :

Code:
      @Command(aliases = { "simple" },
            description = "simple plugin",
            permissions = { "*" },
            toolTip = "/simple")
gehört da vielleicht noch ein Semikolon dahinter ??

Und dann sind da immer noch einige }{ zuviel. Dein if-Block hört doch viel weiter unten auf. Mach doch mal diese überflüssigen {} weg !! Siehe Kommentar von Konrad oben zu der Variablen me !!
 

JStein52

Top Contributor
Java:
import net.canarymod.plugin.Plugin;
import net.canarymod.logger.Logman;
import net.canarymod.Canary;
import net.canarymod.commandsys.*;
import net.canarymod.chat.MessageReceiver;
import net.canarymod.api.entity.living.humanoid.Player;
import com.pragprog.ahmine.ez.EZPlugin;
import net.canarymod.api.world.effects.SoundEffect;
import net.canarymod.api.world.position.Location;

public class Simple extends EZPlugin {

    public static long howlong(int years) {
        return years * 365 * 24 * 60 * 60;
    }

    @Command(aliases = {"simple"},
            description = "simple plugin",
            permissions = {"*"},
            toolTip = "/simple")

    public void simpleCommand(MessageReceiver caller, String[] parameters) {
        if (caller instanceof Player) {
            Player me = (Player) caller;
            // Put your code after this line:

            int myage = 35;
            int twicemyage = myage * 2;
            float volume = 0.5f;
            float pitch = 1.0f;
            double dayOnIo = 152853.504;
            String myname = "Toni Latenz";
            long secondsOld = howlong(35);

            me.chat("My age is" + myage);
            me.chat("My name is" + myname);
            me.chat("My age doubled is:" + twicemyage);
            me.chat("A day on Io in seconds is:" + dayOnIo);
            me.chat("My lifetime in seconds is:" + secondsOld);

            Location loc = me.getLocation();
            playSound(loc, SoundEffect.Type.GHAST_SCREAM, volume, pitch);
        }
        // ...and finish your code before this line.
    }
}

wenn ich das bei mir so mache meckert er zwar die fehlenden packages an die du importierst. Der Rest scheint ok zu sein.
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
FHEFHJHFJH error: class names, 'summe_bsp', are only accepted if annotation processing is explicitly requested Java Basics - Anfänger-Themen 3
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
B Linux - Error: Could not find or load main class application.Main Java Basics - Anfänger-Themen 28
D Compiler-Fehler error: .class expected Java Basics - Anfänger-Themen 2
D error: Class names, >>>HILFE, anfänger<<< Java Basics - Anfänger-Themen 4
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
terashy VS Code Project run error Java Basics - Anfänger-Themen 10
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
monsterherz error: <identifier> expected Java Basics - Anfänger-Themen 2
R Compiler-Fehler identifier error? Java Basics - Anfänger-Themen 3
N Compiler-Fehler Not a statement Error Java Basics - Anfänger-Themen 7
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
richrich99 error: illegal start of expression Java Basics - Anfänger-Themen 10
N Compiler-Fehler State Machine - Compiler Error Java Basics - Anfänger-Themen 48
U Interface als PAramter (Vergleich) und ein Error Java Basics - Anfänger-Themen 9
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
P Eclipse Karate Framework API Test . Unexpected Error: the trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 1
H Versteht jemand diesen Codewars Error? Java Basics - Anfänger-Themen 8
J Fehlermeldung: A JNI error Java Basics - Anfänger-Themen 3
Gaudimagspam Compiler Error Java Basics - Anfänger-Themen 3
Eule25 Arbeit mit long und int, Error: integer number too large Java Basics - Anfänger-Themen 2
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
B Methoden if-statement error, FX, Fehlermeldung Java Basics - Anfänger-Themen 6
K Error bei meinem Programm - Hilfe Java Basics - Anfänger-Themen 8
A Scanner-Error Java Basics - Anfänger-Themen 8
Elyt Error: incompatible types Java Basics - Anfänger-Themen 3
I Client ObjectInputStream error... Java Basics - Anfänger-Themen 5
Kirby.exe Alle möglichen Error Möglichkeiten abfangen Java Basics - Anfänger-Themen 33
C error: <identifier> expected Java Basics - Anfänger-Themen 13
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
N Methoden Unerklärliche Error Meldung Java Basics - Anfänger-Themen 3
ZH1896ZH Datentypen Error bei For-Schleife Java Basics - Anfänger-Themen 2
R Error, wenn mehrere Clients gleichzeitig die Verbindung beenden Java Basics - Anfänger-Themen 16
Z Klassen Error: ';' expected - was mache ich falsch? Java Basics - Anfänger-Themen 4
9 Error bei .split() Java Basics - Anfänger-Themen 2
L Operatoren error: bad operand types for binary operator && Java Basics - Anfänger-Themen 8
B cal4j - Error at line 1:Unexpected end of file Java Basics - Anfänger-Themen 0
F Erste Schritte error: cannot find symbol Java Basics - Anfänger-Themen 5
L SQLITE - Syntax error Java Basics - Anfänger-Themen 3
R else without if error Java Basics - Anfänger-Themen 5
A Objekt in Methode zurückgeben, JUnit zeigt Error Java Basics - Anfänger-Themen 2
F Ausdruck wirft unerwarteten Error Java Basics - Anfänger-Themen 2
T Unverständlicher Launch-Error Java Basics - Anfänger-Themen 11
L Bluej Error: Cannot find Symbol Java Basics - Anfänger-Themen 13
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
T Error: int cannot be dereferenced Java Basics - Anfänger-Themen 10
D Datentypen Datentyperstellung | Kompiler sagt Syntax Error doch ich find keine Lösung Java Basics - Anfänger-Themen 2
J Syntax error on token ";",, expected Java Basics - Anfänger-Themen 2
W double*double error Java Basics - Anfänger-Themen 4
C Compiler-Fehler No such Field error Java Basics - Anfänger-Themen 20
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
C Erste Schritte Syntax Error Java Basics - Anfänger-Themen 23
H Variablen error: non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 4
H Compiler-Fehler error not a statement Java Basics - Anfänger-Themen 2
N Error bei eingabe eines Punktes Java Basics - Anfänger-Themen 1
TheMenox Error bei Scanner - woher? Java Basics - Anfänger-Themen 14
Chr1s Interpreter-Fehler Error Fehlercode Java Basics - Anfänger-Themen 7
D Bitte um Hilfe bei "error: package com.apple.eawt does not exist import com.apple.eawt.*;" Java Basics - Anfänger-Themen 1
J Error: cannot find symbol - variable Java Basics - Anfänger-Themen 3
S Compiler-Fehler error: ';' expected (finde Fehler nicht) Java Basics - Anfänger-Themen 10
D Erste Schritte Fehlermeldung "Syntax error on token ";", { expected after this token" Java Basics - Anfänger-Themen 13
1 Bei if-Anweisung: Syntax error on token Java Basics - Anfänger-Themen 5
D Übung Felder java Error kompilieren Java Basics - Anfänger-Themen 4
Joew0815 Error org.apache.xmlrpc.client.XmlRpcClientConfigImpl.setUserAgent Java Basics - Anfänger-Themen 2
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
C Exception Error Java Basics - Anfänger-Themen 15
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
B Not a statement error Java Basics - Anfänger-Themen 2
D error: cannot find symbol Java Basics - Anfänger-Themen 3
B Frage zu Beispielprogramm: "error: cannot find symbol" Java Basics - Anfänger-Themen 2
F java Ip ping + Dateiausgabe error ! Java Basics - Anfänger-Themen 3
O Exception Error Java Basics - Anfänger-Themen 3
BlueMountain Erste Schritte error: cannot find symbol Java Basics - Anfänger-Themen 2
B Printf führt zu Error. Java Basics - Anfänger-Themen 8
P Fatal Error [...] librxtxSerial.so Java Basics - Anfänger-Themen 2
L Error: Cannot find symbol Java Basics - Anfänger-Themen 1
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
B Compiler-Fehler 86:11: error: ';' expected obwohl kein ";" hingehört! Java Basics - Anfänger-Themen 10
K Java-Editor: "Starten" bringt Error Java Basics - Anfänger-Themen 15
N Error "unreachable Code" Java Basics - Anfänger-Themen 7
A error: incompatible types Java Basics - Anfänger-Themen 9
T If ; else error on system token delete Java Basics - Anfänger-Themen 5
B Error vs Runtime exception Java Basics - Anfänger-Themen 4
W Variablen While-Error Java Basics - Anfänger-Themen 6
N Operatoren JSpinner und + Error Java Basics - Anfänger-Themen 21
M Java Arbeitsspeicherverbrauch, Heap Space error korrigieren? Java Basics - Anfänger-Themen 18
D Error bei addView Java Basics - Anfänger-Themen 4
M Syntax error on token ";", { expected after this token Java Basics - Anfänger-Themen 3
J Variablen Invalid Character - Error -> Spiel mit Variablenergebnissen Java Basics - Anfänger-Themen 8
K Erste Schritte eclipse syntax error token Java Basics - Anfänger-Themen 5
vandread String.split("\\") führt zu Error?! Java Basics - Anfänger-Themen 8
G Fehlermeldung: A fatal error has been detected by the Java Runtime Environment Java Basics - Anfänger-Themen 7
B Compiler-Fehler import java.io.*; führt zu error Java Basics - Anfänger-Themen 2
S Syntax Error - source level Java Basics - Anfänger-Themen 12
L bean error bei glassfish deploy Java Basics - Anfänger-Themen 2
B Syntax error Java Basics - Anfänger-Themen 6
K Error: java.lang.NoSuchMethodException Java Basics - Anfänger-Themen 2
K Objekt erstellen - error: non-static variable this cannot be referenced from a static context Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben