Launcher Minecraft personnalisé
Résolu/Fermé
A voir également:
- Créer un launcher minecraft personnalisé
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Créer un groupe whatsapp - Guide
- Créer un compte instagram - Guide
- Créer un organigramme - Guide
9 réponses
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
30 déc. 2012 à 12:15
30 déc. 2012 à 12:15
Il faut décompiler tout le code, et le recompiler ensuite sous Eclipse.
En effet pour compiler un fichier, il faut que toutes les données pour la compilation soient présentes.
Tu ne peux pas compiler un fichier si les dépendances sur d'autres classes non connues ne sont pas résolues.
Soluce 1 :
Tu peux très bien décompiler tout le code avec MCP ou JDGui par exemple, et créer un script de compilation.
Déjà il faut vérifier que la compilation du code de base se passe bien.
Si tel est le cas, tu modifies le code, et ensuite tu refais la compilation.
Si tout se passe bien, alors il suffit juste d'ouvrir le fichier .jar de base avec Winrar par exemple, puis juste glisser/déposer le fichier .class généré modifié. Il n'est pas nécessaire de remplacer les fichiers qui n'ont pas été modifiés. En revanche tous les fichiers sont potentiellement nécessaires pour faire la compilation.
Soluce 2 :
Tu décompiles le code avec MCP ou JDGui par exemple.
Ensuite tu crées un projet Eclipse, et tu importes les fichiers .java dedans.
Par défaut Eclipse réalise une compilation automatique à chaque sauvegarde du code si je ne m'abuse.
Si le code tel quel se compile, en fait juste le fichier dont tu as besoin, alors il faut que tu ailles chercher le .class généré dans le répertoire des projets. Puis pareil qu'au dessus on remplace le fichier dans le .jar
Si tu ne comprends pas ce que je dis, c'est normal ^^
En effet pour compiler un fichier, il faut que toutes les données pour la compilation soient présentes.
Tu ne peux pas compiler un fichier si les dépendances sur d'autres classes non connues ne sont pas résolues.
Soluce 1 :
Tu peux très bien décompiler tout le code avec MCP ou JDGui par exemple, et créer un script de compilation.
Déjà il faut vérifier que la compilation du code de base se passe bien.
Si tel est le cas, tu modifies le code, et ensuite tu refais la compilation.
Si tout se passe bien, alors il suffit juste d'ouvrir le fichier .jar de base avec Winrar par exemple, puis juste glisser/déposer le fichier .class généré modifié. Il n'est pas nécessaire de remplacer les fichiers qui n'ont pas été modifiés. En revanche tous les fichiers sont potentiellement nécessaires pour faire la compilation.
Soluce 2 :
Tu décompiles le code avec MCP ou JDGui par exemple.
Ensuite tu crées un projet Eclipse, et tu importes les fichiers .java dedans.
Par défaut Eclipse réalise une compilation automatique à chaque sauvegarde du code si je ne m'abuse.
Si le code tel quel se compile, en fait juste le fichier dont tu as besoin, alors il faut que tu ailles chercher le .class généré dans le répertoire des projets. Puis pareil qu'au dessus on remplace le fichier dans le .jar
Si tu ne comprends pas ce que je dis, c'est normal ^^
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
30 déc. 2012 à 01:33
30 déc. 2012 à 01:33
Et comment génère-t-on des .class?
En compilant les fichiers .java ! :-)
En compilant les fichiers .java ! :-)
Utilisateur anonyme
Modifié par stevie666 le 30/12/2012 à 13:36
Modifié par stevie666 le 30/12/2012 à 13:36
Merci, j'ai compris !
j'ai réussi à mettre le Minecraft.class généré dans mon minecraft.jar, mais maintenant mon launcher reste bloqué avec la progressbar à 99% et "done loading". La console de eclipse me signale ceci :
Exception in thread "Thread-5" java.lang.SecurityException: SHA1 digest error for net/minecraft/client/Minecraft.class
at sun.security.util.ManifestEntryVerifier.verify(Unknown Source)
at java.util.jar.JarVerifier.processEntry(Unknown Source)
at java.util.jar.JarVerifier.update(Unknown Source)
at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source)
at sun.misc.Resource.getBytes(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at net.minecraft.GameUpdater.createApplet(GameUpdater.java:419)
at net.minecraft.Launcher$1.run(Launcher.java:88)
Merci de m'aider.
j'ai réussi à mettre le Minecraft.class généré dans mon minecraft.jar, mais maintenant mon launcher reste bloqué avec la progressbar à 99% et "done loading". La console de eclipse me signale ceci :
Exception in thread "Thread-5" java.lang.SecurityException: SHA1 digest error for net/minecraft/client/Minecraft.class
at sun.security.util.ManifestEntryVerifier.verify(Unknown Source)
at java.util.jar.JarVerifier.processEntry(Unknown Source)
at java.util.jar.JarVerifier.update(Unknown Source)
at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source)
at sun.misc.Resource.getBytes(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at net.minecraft.GameUpdater.createApplet(GameUpdater.java:419)
at net.minecraft.Launcher$1.run(Launcher.java:88)
Merci de m'aider.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
30 déc. 2012 à 15:42
30 déc. 2012 à 15:42
Bouge pas je décompile et je regarde :-)
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
30 déc. 2012 à 16:31
30 déc. 2012 à 16:31
Tu peux donner quelles sont les lignes suivantes :
at net.minecraft.GameUpdater.createApplet(GameUpdater.java:419)
at net.minecraft.Launcher$1.run(Launcher.java:88)
at net.minecraft.GameUpdater.createApplet(GameUpdater.java:419)
at net.minecraft.Launcher$1.run(Launcher.java:88)
Utilisateur anonyme
Modifié par stevie666 le 30/12/2012 à 16:44
Modifié par stevie666 le 30/12/2012 à 16:44
tu veux les lignes de codes où les erreurs ont été trouvées ?
Et le launcher fonctionne très bien tant que je ne modifie pas le client (Minecraft.class du minecraft.jar)
Et le launcher fonctionne très bien tant que je ne modifie pas le client (Minecraft.class du minecraft.jar)
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
30 déc. 2012 à 17:53
30 déc. 2012 à 17:53
A priori je pense savoir d'où vient le souci.
Dans le Minecraft.exe comme dans le minecraft.jar, il y a dans le dossier META-INF le fichier MANIFEST.MF qui comporte les signatures des fichiers du jar.
Etant donné que le fichier .class a été modifié, du coup la signature n'est plus la même. Il faudrait régénérer la signature du fichier et la modifier dans le MANIFEST.MF
Enfin après reste à savoir si c'est bien ça mais il y a de grandes chances.
Dans le Minecraft.exe comme dans le minecraft.jar, il y a dans le dossier META-INF le fichier MANIFEST.MF qui comporte les signatures des fichiers du jar.
Etant donné que le fichier .class a été modifié, du coup la signature n'est plus la même. Il faudrait régénérer la signature du fichier et la modifier dans le MANIFEST.MF
Enfin après reste à savoir si c'est bien ça mais il y a de grandes chances.
Utilisateur anonyme
30 déc. 2012 à 19:30
30 déc. 2012 à 19:30
J'ai tout simplement viré le dossier META-INF , comme il faut faire pour tout les mods minecraft. Mais pourquoi est-ce que j'y ai pas pensé avant ... --'
Merci beaucoup pour ton aide, bonne continuation :)
Merci beaucoup pour ton aide, bonne continuation :)