Launcher Minecraft qui ne se lance pas

ElectricCrystal Messages postés 5 Date d'inscription mardi 25 avril 2023 Statut Membre Dernière intervention 30 juillet 2023 - Modifié le 24 mai 2023 à 20:34
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 25 mai 2023 à 19:47

Bonjour,

Bonjour,

Je suis entrain de développer un launcher Minecraft Forge 1.16.5.

Mais dès que je lance le jeu ca ne lance pas Minecraft.

Ps: Ces écris volcanite car ces le nom du serveur que je veux créer.

Voici un enregistrement vidéo et je met le code ici.

Lien de la vidéo: https://www.youtube.com/watch?v=U1p6Sl0RVpg&feature=youtu.be

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.net.URL;

public class Main {
    private static final String minecraftPath = "C:\\Users\\Administrator\\AppData\\Roaming\\.minecraft";
    private static final String javaPath = "C:\\Program Files\\Java\\jre-1.8\\bin\\javaw.exe";
    private static final String forgeVersion = "1.16.5-forge-36.2.34";

    public static void main(String[] args) {
        JFrame frame = new JFrame("Volcanite Launcher");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 200);
        frame.setLayout(new FlowLayout());

        JTextField usernameField = new JTextField(20);

        JButton launchButton = new JButton("Lancer Volcanite");
        launchButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String username = usernameField.getText();
                launchMinecraft(username);
            }
        });

        frame.add(usernameField);
        frame.add(launchButton);
        frame.setVisible(true);
    }

    private static void launchMinecraft(String username) {
        try {
            ProcessBuilder processBuilder = new ProcessBuilder(javaPath, "-jar", minecraftPath + File.separator + "versions" + File.separator + forgeVersion + File.separator + forgeVersion + ".jar");
            processBuilder.directory(new File(minecraftPath));
            processBuilder.environment().put("username", username);
            Process process = processBuilder.start();

            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }

            process.waitFor();
        } catch (IOException e) {
            System.err.println("Erreur lors du lancement de Minecraft : " + e.getMessage());
        } catch (InterruptedException e) {
            System.err.println("Lancement de Minecraft interrompu : " + e.getMessage());
        }
    }
}


Windows / Chrome 113.0.0.0

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié le 24 mai 2023 à 21:20

Bonjour,

Ton BufferedReader ne lis que le flux standard (System.out) mais il faudrait également lire le flux d'erreur (System.err) car il contient peut-être des lignes qui t'aiderait à comprendre le problème.

J'ai modifié ta méthode launchMinecraft pour qu'elle lise les deux flux en même temps :

private static void launchMinecraft(String username) {
    System.out.println("LAUNCH: " + username);
    try {
        ProcessBuilder processBuilder = new ProcessBuilder(javaPath, "-jar", minecraftPath + File.separator + "versions" + File.separator + forgeVersion + File.separator + forgeVersion + ".jar");
        processBuilder.directory(new File(minecraftPath));
        processBuilder.environment().put("username", username);
        Process process = processBuilder.start();

        Thread out = startReadStreamThread(process.getInputStream(), line -> System.out.println("STDOUT: " + line));
        Thread err = startReadStreamThread(process.getErrorStream(), line -> System.err.println("STDERR: " + line));
        try {
            System.out.println("FINISH: " + process.waitFor());
        } finally {
            out.join();
            err.join();
        }
    } catch (Throwable t) {
        System.err.println("FINISH: " + t);
    }
}

private static Thread startReadStreamThread(InputStream in, Consumer<String> out) {
    Thread t = new Thread(() -> readStream(in, out));
    t.setDaemon(true);
    t.start();
    return t;
}

private static void readStream(InputStream in, Consumer<String> out) {
    try (Scanner sc = new Scanner(in)) {
        while (sc.hasNextLine()) {
            out.accept(sc.nextLine());
        }
    }
}

0
ElectricCrystal Messages postés 5 Date d'inscription mardi 25 avril 2023 Statut Membre Dernière intervention 30 juillet 2023
Modifié le 25 mai 2023 à 17:52

Bonjour merci pour votre réponse mais ca ne marche toujours pas voici le lien avec le code en description de la vidéo 

Merci d'avance pour votre réponse 

Vidéo: https://www.youtube.com/watch?v=cyNQo614dWk&feature=youtu.be

Ah euh enfaite il manque simplement des import au debut du code j'essaye de les changé et je vous tient au courant

Re voici mon nouveau probleme voici le lien de la vidéo : https://www.youtube.com/watch?v=WMD8KAh5mzU&feature=youtu.be

J'esspere que ca vous aidera a m'aider 

Merci d'avance 

Cordialement ElectricCrystal

0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
25 mai 2023 à 19:47

Bonjour,

Il n'est pas utile - et même contreproductif - de faire des vidéos YouTube à chaque fois que tu as un message d'erreur, un copier-coller de l'erreur sur le forum suffit.

Concernant le message "impossible de trouver ou charger la classe principale net.minecraft.client.Main" son équivalent en anglais (pour chercher sur Google) c'est "Could not find or load main class net.minecraft.client.Main"

Cette erreur semble assez fréquente sur les forums Minecraft, je te laisse regarder les différents post qui existent :

https://www.google.com/search?q=%26%2334%3BCould+not+find+or+load+main+class+net.minecraft.client.Main%26%2334%3B+site%3Awww.minecraftforum.net

0