Java – die neusten Beiträge

Java Code Hilfe?

Ich lerne gerade in der Schule Java zu programmieren. Aber unsere Lehrerin hat uns nicht richtig erklärt, wie unsere Aufgabe gemacht werden soll. Jetzt brauche ich Hilfe. Wir programmieren im Programm BlueJ und sollen im Script unserer Klasse KREIS eine double Methode machen, die den Umfang berechnet. Aber BlueJ zeigt einen Fehler am Ende der Klammer bei der Methode an. Bitte helft mir! Hier ist der Code:

public class KREIS
{
   //Attribute
   private int mittelpunktX;
   private int mittelpunktY;
   private int radius;
   private String fuellfarbe;

   //Konstruktor

   public KREIS(int mittelpunktXneu, int mittelpunktYneu, int radiusneu, String fuellfarbeneu)
   {
       mittelpunktX=mittelpunktXneu;
       mittelpunktY=mittelpunktYneu;
       radius=radiusneu;
       fuellfarbe=fuellfarbeneu;
   }

   //Methode

   public void setzeMittelpunkt(int mittelpunktXNew, int mittelpunktYNew)
   {
       mittelpunktX=mittelpunktXNew;
       mittelpunktY=mittelpunktYNew;
   }

   public void zeichne()
   {
       ZEICHENFENSTER.gibFenster().fuelleKreis(mittelpunktX,mittelpunktY,radius,fuellfarbe);
   }

   public void setzeFarbe(String fuellfarbeNeu)
   {
       fuellfarbe=fuellfarbeNeu;
   }

   public double UmfangBerechnen(radiusNeu);
   {
      return radiusNeu*2*3.14;
   }
}
PC, Software, programmieren, Java, Code, Informatik

Windows 10 auf Windows 11 erzeugen - wie geht das und ist das sinnvoll?

Hallo Community!

Wie an meinen letzten Fragen zu sehen versuche ich seit geraumer Zeit, Minecraft After Humans unter dem Technic Launcher zum laufen zu bringen, was mir allerdings nicht richtig gelingt (Arbeitsspeicher läuft voll und Spiel stützt ab). Nach etlichen verschiedenen und allesamt gescheiterten Lösungsansätzen* bin ich jetzt bei dem Gedanken, dass das Problem vielleicht mein Betriebssystem ist und die Mods (ältere Minecraft-Versionen ohne Mods funktionieren) zu alt sind und sich einfach nicht damit vertragen.

Deswegen habe ich darüber nachgedacht, wie ich für das Spiel eventuell Windows 10 simulieren kann, aber ganz so weit reichen meine Computerkenntnisse leider nicht. Deswegen bräuchte ich hier mal Hilfe, ob das sinnvoll ist und wenn ja, wie ich das bewerkstellige.

*Lösungsansätze beinhalten:

  • Das Installieren verschiedener Modpacks vom Technic Launcher, die abgesehen von der Vanilla-Version allesamt das gleiche Problem haben, egal welche MC-Version benötigt wird
  • Das Zuweisen von mehr Arbeitsspeicher
  • Das Zuweisen von weniger Arbeitsspeicher
  • Verschiedene online angebotene Java-Argumente
  • Das eigenhändige Modden des Spiels mithilfe des MC Modinstallers (damit startet das Spiel erst gar nicht)
  • Die Installation unterschiedlicher Java-Versionen
  • Neuinstallation sowohl des Spiels als auch des Launchers als auch der verschiedenen Modpacks
  • Let's plays gucken und stattdessen was anderes spielen
Mods, Java, Minecraft, Technic Launcher, Windows 11

Minecraft 1.20.4 - Eclipse Programmierung, kann keine Imports machen?

Ich möchte mit Java ein Plugin für 1.20.4 programmieren und habe mir ein Code von ChatGPT schreiben lassen.

package de.diamanthoe.plugin;

import org.bukkit.Material;

import org.bukkit.Particle;

import org.bukkit.command.Command;

import org.bukkit.command.CommandSender;

import org.bukkit.command.CommandExecutor;

import org.bukkit.configuration.ConfigurationSection;

import org.bukkit.configuration.file.FileConfiguration;

import org.bukkit.entity.Player;

import org.bukkit.inventory.Inventory;

import org.bukkit.inventory.ItemStack;

import org.bukkit.inventory.meta.ItemMeta;

import org.bukkit.plugin.java.JavaPlugin;

import org.bukkit.Location;

public class NaviSystem extends JavaPlugin implements CommandExecutor {

  @Override

  public void onEnable() {

    // Register commands

    getCommand("navi").setExecutor(this);

  }

  @Override

  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {

    if (!(sender instanceof Player)) {

      sender.sendMessage("Dieser Befehl kann nur von Spielern ausgeführt werden.");

      return true;

    }

    Player player = (Player) sender;

    if (cmd.getName().equalsIgnoreCase("navi")) {

      if (args.length >= 1) {

        if (args[0].equalsIgnoreCase("save")) {

          if (args.length >= 2) {

            savePoint(args[1], player.getLocation());

            sender.sendMessage("Punkt gespeichert unter: " + args[1]);

          } else {

            sender.sendMessage("Verwendung: /navi save [Name]");

          }

        } else {

          if (args.length >= 3) {

            try {

              double x = Double.parseDouble(args[0]);

              double y = Double.parseDouble(args[1]);

              double z = Double.parseDouble(args[2]);

              Location target = new Location(player.getWorld(), x, y, z);

              createParticleTrail(player, target);

            } catch (NumberFormatException e) {

              sender.sendMessage("Ungültige Koordinaten.");

            }

          } else {

            sender.sendMessage("Verwendung: /navi <x y z>");

          }

        }

      } else {

        sender.sendMessage("Verwendung: /navi <x y z>");

      }

    }

    return true;

  }

  private void createParticleTrail(Player player, Location target) {

    Location playerLocation = player.getLocation();

    player.spawnParticle(Particle.REDSTONE, playerLocation, 0, target.getX(), target.getY(), target.getZ(), 10);

  }

  private void savePoint(String name, Location location) {

    FileConfiguration config = getConfig();

    config.set("points." + name + ".world", location.getWorld().getName());

    config.set("points." + name + ".x", location.getX());

    config.set("points." + name + ".y", location.getY());

    config.set("points." + name + ".z", location.getZ());

    saveConfig();

  }

  private void openPointsGUI(Player player) {

    Inventory gui = getServer().createInventory(null, 9, "Gespeicherte Punkte");

    ConfigurationSection pointsSection = getConfig().getConfigurationSection("points");

    if (pointsSection != null) {

      for (String pointName : pointsSection.getKeys(false)) {

        ConfigurationSection pointConfig = pointsSection.getConfigurationSection(pointName);

        if (pointConfig != null) {

          String worldName = pointConfig.getString("world");

          double x = pointConfig.getDouble("x");

          double y = pointConfig.getDouble("y");

          double z = pointConfig.getDouble("z");

          ItemStack pointItem = createPointItem(worldName, x, y, z);

          gui.addItem(pointItem);

        }

      }

    }

    player.openInventory(gui);

  }

  private ItemStack createPointItem(String worldName, double x, double y, double z) {

    ItemStack item = new ItemStack(Material.COMPASS);

    ItemMeta meta = item.getItemMeta();

    meta.setDisplayName(worldName + " - " + x + ", " + y + ", " + z);

    item.setItemMeta(meta);

    return item;

  }

}

Das Problem ist, dass da total viel rot unterstrichen wird, was wahrscheinlich auf die Imports zurückzuführen ist. Die Imports selbst sind teilweise ebenso rot interstrichen (org.bukkit).

Ich benutze das JDK 17 und Java SE 1.8.

Java, Minecraft, Code, Minecraft Server, Programmiersprache, Bukkit, Spigot

Mongo DB Express auf Port :8081 zum Laufen kriegen. Was mach ich falsch?

Hab mal eine Frage zum Thema IT & Server & Ports und würde mich freuen wenn mir einer mit Fachkenntnissen weiterhelfen kann:

Also ich versuche hier seit Tagen eine kleine Webseite auf einem angemieteten Server (Debian 10) zum Laufen zu kriegen und möchte dabei das Datenbanksystem Mongo DB (+ das Webinterface mongo-express) verwenden. Die wichtigsten Grundabhängigkeiten wie Mongo DB, PHP, Java, node.js, npm etc. konnte ich bereits alle installieren und hab es nach sehr langem Herumprobieren sogar geschafft mit einem kleinen .sh Script den Port :8081 zu öffnen, sodass dieser zumindest in den IP-Tables angezeigt wird. Auch konnte ich (Mithilfe verschiedener Anleitungen) alle Anwendungen erfolgreich starten, teils erst nach dem Setzen einiger Umgebungsvariablen setzen und bekomme nun die Meldung, dass der DB-Express Server auf dem richtigen Port lauscht. Dennoch komm ich nun seit gestern nicht weiter bzw. mein Browser kann sich mit dem Port :8081 des Servers einfach nicht verbinden > "Netzwerkfehler", wobei die Ursache alles und nichts sein kann! Hab auch schon mit anderen Ports probiert mit ähnlichem Resultat. Meine Frage wäre jetzt ob irgendeiner diese Anwendung hier (dieses Problem) zufällig kennt oder weiß was hier zutun ist oder was ein mögliches Problem sein kann?   Ich hab da zwar eine wage Vermutung aber da ich das alles komplett blind und zum ersten mal mache und derzeit keinen *richtigen* IT-Experten habe wären ein paar Ratschläge, die jetzt nicht unbedingt in den Anleitungen stehen nicht schlecht?

Server, Linux, Netzwerk, Webseite, programmieren, Java, Apache, Firewall, Netzwerkverbindung, PHP, Port, Kommandozeile, MongoDB, Debian 10

Java: Methode wird sehr wahrscheinlich nicht aufgerufen?

Mein Programm lässt sich ohne jegliche Fehlermeldungen, etc. kompilieren und ausführen. Beim Ausführen des Codes stoppt es ohne einen von mir ersichtlichen Grund, wenn es die Methode karteout() ausführen soll. Es zeigt mir, wo es eigentlich einen Namen einer Spielkarte anzeigen sollte, einfach eine leere Zeile an, in die ich nichts eingeben kann.

Mein Code:

Main.java:

public class Main {
  public static void main(String[] args) {
    Kartendeck karten = new Kartendeck();
    karten.kartendeck();
    Player pturn = new Player();
    pturn.player();
  }
}

Kartendeck.java:

import java.util.Random;

public class Kartendeck {
  private int counter1;
  private int cardid;
  private int[] cards = new int[52];
  private int karte;
  private int zs1;

  public void kartendeck() {
    counter1 = -1;

    for (int i = 0; i < 4; i++) {
      for (int j = 0; j < 13; j++) {
        i++;
        j++;
        cardid = 100 * i + j;
        counter1++;
        i--;
        j--;
        cards[counter1] = cardid;
      }
    }
  }

  public void karteout() {
    Random random = new Random();
    loopkarte: while (true) {
      karte = random.nextInt(52);
      zs1 = cards[karte];

      if (cards[karte] != 0) {
        cards[karte] = 0;
        break loopkarte;
      }
    }

    if (zs1 % 100 == 1) {
      System.out.print("Ace ");
    }
    else if (zs1 % 100 == 2) {
      System.out.print("2 ");
    }
    else if (zs1 % 100 == 3) {
      System.out.print("3 ");
    }
    else if (zs1 % 100 == 4) {
      System.out.print("4 ");
    }
    else if (zs1 % 100 == 5) {
      System.out.print("5 ");
    }
    else if (zs1 % 100 == 6) {
      System.out.print("6 ");
    }
    else if (zs1 % 100 == 7) {
      System.out.print("7 ");
    }
    else if (zs1 % 100 == 8) {
      System.out.print("8 ");
    }
    else if (zs1 % 100 == 9) {
      System.out.print("9 ");
    }
    else if (zs1 % 100 == 10) {
      System.out.print("10 ");
    }
    else if (zs1 % 100 == 11) {
      System.out.print("Jack ");
    }
    else if (zs1 % 100 == 12) {
      System.out.print("Queen ");
    }
    else if (zs1 % 100 == 13) {
      System.out.print("King ");
    }
    else {
      System.out.print("");
    }

    if ((zs1 - zs1 % 100) / 100 == 1) {
      System.out.println("of Spades");
    }
    else if ((zs1 - zs1 % 100) / 100 == 2) {
      System.out.println("of Hearts");
    }
    else if ((zs1 - zs1 % 100) / 100 == 3) {
      System.out.println("of Clubs");
    }
    else if ((zs1 - zs1 % 100) / 100 == 4) {
      System.out.println("of Diamonds");
    }
    else {
      System.out.print("");
    }
  }
}

Player.java:

import java.util.Scanner;

public class Player {
  private String userinput;

  public void player() {
    Scanner scan = new Scanner(System.in);
    Kartendeck karten = new Kartendeck();
    System.out.println("CPU's up:");
    karten.karteout();
    System.out.println("Deine Startkarten:");
    karten.karteout();
    karten.karteout();

    loopturn: while (true) {
      System.out.println("Was möchtest du machen?");
      System.out.println("--> Hit");
      System.out.println("--> Stay");
      userinput = scan.nextLine();

      loopuser: while (true) {
        if (userinput.equals("Hit")) {
          karten.karteout();
          break loopuser;
        }
        else if (userinput.equals("Stay")) {
          break loopturn;
        }
        else {
          System.out.println("Diese Funktion ist nicht verfügbar!");
        }
      }
    }
  }
}

Ich hoffe, mir kann jemand helfen und vielen Dank im Voraus.

Java, Code

Meistgelesene Beiträge zum Thema Java