pamputt Posté(e) le 1 février 2011 Partager Posté(e) le 1 février 2011 Bonjour, je suis en train d'essayer de compiler iMule sur une Mandriva 2010.2. Après avoir solutionné un premier problème, je tombe maintenant sur cette erreur de compilation. /usr/bin/ccache gcj -I./libs/i2p -O2 -MT libs/i2p/i2prouter-I2PRouter.o -MD -MP -MF libs/i2p/.deps/i2prouter-I2PRouter.Tpo -c -o libs/i2p/i2prouter-I2PRouter.o `test -f 'libs/i2p/I2PRouter.java' || echo './'`libs/i2p/I2PRouter.java libs/i2p/I2PRouter.java:16: error: The import net cannot be resolved import net.i2p.router.Router ; ^^^ libs/i2p/I2PRouter.java:17: error: The import net cannot be resolved import net.i2p.i2ptunnel.TunnelControllerGroup; ^^^ libs/i2p/I2PRouter.java:23: error: Router cannot be resolved Router.main(args); ^^^^^^ libs/i2p/I2PRouter.java:27: error: addressbook cannot be resolved to a type (new addressbook.DaemonThread ( addressbookpath ) ).start(); ^^^^^^^^^^^ libs/i2p/I2PRouter.java:28: error: TunnelControllerGroup cannot be resolved TunnelControllerGroup.getInstance(); // have to call sth so that the class ^^^^^^^^^^^^^^^^^^^^^ 5 problems (5 errors) make[3]: *** [libs/i2p/i2prouter-I2PRouter.o] Erreur 1 make[3]: quittant le répertoire « /home/pamputt/Téléchargement/iMule-1.4.6-src/src » make[2]: *** [all-recursive] Erreur 1 make[2]: quittant le répertoire « /home/pamputt/Téléchargement/iMule-1.4.6-src/src » make[1]: *** [all-recursive] Erreur 1 make[1]: quittant le répertoire « /home/pamputt/Téléchargement/iMule-1.4.6-src » make: *** [all] Erreur 2 Je ne connais absolument rien en java alors si quelqu'un aurait une idée pour solutionner ce problème. Si ça peut aider, voici le contenu de I2PRouter.java /** * * RUN Router alone * */ import java.io.PrintWriter; import java.io.BufferedWriter; import java.io.FileWriter; import java.lang.Thread ; import java.lang.Throwable; import java.io.File; import java.util.Properties; import java.lang.InterruptedException; import net.i2p.router.Router ; import net.i2p.i2ptunnel.TunnelControllerGroup; public class I2PRouter extends Thread { public static void main(String args[]) { Router.main(args); if (args.length>10) { String addressbookpath[] = {"addressbook"}; (new addressbook.DaemonThread ( addressbookpath ) ).start(); TunnelControllerGroup.getInstance(); // have to call sth so that the class // is compiled and stays in the binary } } } Lien vers le commentaire Partager sur d’autres sites More sharing options...
foetus Posté(e) le 1 février 2011 Partager Posté(e) le 1 février 2011 Lol: j'ai vu sur Internet un gars qui a posté le même post mais en août 2008: :mdr2: :mdr2: :mdr2: :mdr2: :mdr2: :mdr2: Ton erreur semble simple. Elle est ici: > error: The import net cannot be resolved Il te manque la librairie net Java Il faut donc chercher la librairie net en Java. Ensuite soit deux solutions Tu as une archive Jar (.jar): il faut la mettre avec les autres libraires Java (trouver où) Tu as des sources (.java): il faut mettre les sources à la racine à l'endroit du plantage Tu as du bytecode (.class): cela est très moche. Dans ce cas il faut faire une archive jar et regarder le pont 1) (Chercher la commande à lancer) Un petit point sur le java: (Pour éclairer les 3 points ci-dessus) Java te force à mettre ton code dans une librairie qui s'appelle un package. Un exemple "package org.example.opengl;" <- cela doit toujours être la première ligne d'un fichier source Java (.java) Ensuite pour appeler une librairie "import java.io.PrintWriter" Mais là où je veux en venir, si tu fais ton Main dans le package "org.example.opengl", ton fichier Main.java va être dans le dossier "opengl", qui lui va être dans le dossier "example", qui lui va être dans le dossier "org", qui lui va être dans le dossier "src" Et pareil pour le bytecode, mais dans le dossier "gen" au lieu de "src". De plus le java va créer un fichier par classe que contient ton fichier source. Exemple: ton fichier Main.java contient la classe Toto et la classe Main (<- Java te force toujours à avoir une classe qui a le même nom que ton fichier source sinon erreur (si je ne me trompe pas)), alors tu vas avoir un Main.class et un Main$Toto.class Donc tout cela fait pleins de fichiers et une arborescence très développée (à la limite de l'énervement). C'est pour cela que le jar a été inventé: on met tout ce petit monde dans une archive Jar pour distribuer le bytecode (*), qui sera décompressé à la volée si nécessaire. (*) Dans le Jar, les sources ne sont jamais mises. Par contre la décompilation de bytecode te redonne ton code en intégralité (je l'avais testé il y a longtemps et c'est flippant) PS: Un expert pour me bananer Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 2 février 2011 Partager Posté(e) le 2 février 2011 Pas grand chose à ajouter si ce n'est quelques remarques sur les propos de foetus - Main$Toto ne signifie pas que Toto est dans le fichier Main.java mais que c'est une classe interne à Main. - On peut très bien mettre les sources dans un jar, c'est juste que ça n'est pas fait par défaut. - Le compilateur compile là où tu lui dis. Sous Eclipse par défaut, c'est un répertoire bin. Mais tu peux aussi compiler chaque .class dans le répertoire du .java ou compiler ailleurs. - Si tu ne mets pas les sources dans ton jar ni les informations de debug, tu ne pourras pas retrouver exactement le source de ton code. Tout dépend de comment tu génères ton jar. Après, un outil comme jad reste assez efficace. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pamputt Posté(e) le 2 février 2011 Auteur Partager Posté(e) le 2 février 2011 Oui l'autre gars, c'est moi aussi. Je post à différents endroits pour avoir des avis différents ou des réponses plus rapides (par contre je n'oublie pas d'indiquer la réponse dans les autres forums si on me l'a donné ailleurs). Donc concernant la bibliothèque "net" de java, je pense qu'elle existe sur mon système. J'ai un dossier net dans le répertoire /usr/include/libgcj-4.4.3/java qui contient ceci total 212 -rw-r--r-- 1 root root 1713 2010-02-09 09:57 Authenticator.h -rw-r--r-- 1 root root 595 2010-02-09 09:57 BindException.h -rw-r--r-- 1 root root 615 2010-02-09 09:57 ConnectException.h -rw-r--r-- 1 root root 631 2010-02-09 09:57 ContentHandlerFactory.h -rw-r--r-- 1 root root 705 2010-02-09 09:57 ContentHandler.h -rw-r--r-- 1 root root 1587 2010-02-09 09:57 DatagramPacket.h -rw-r--r-- 1 root root 2634 2010-02-09 09:57 DatagramSocket.h -rw-r--r-- 1 root root 641 2010-02-09 09:57 DatagramSocketImplFactory.h -rw-r--r-- 1 root root 1865 2010-02-09 09:57 DatagramSocketImpl.h -rw-r--r-- 1 root root 541 2010-02-09 09:57 FileNameMap.h -rw-r--r-- 1 root root 3327 2010-02-09 09:57 HttpURLConnection.h -rw-r--r-- 1 root root 1188 2010-02-09 09:57 Inet4Address.h -rw-r--r-- 1 root root 1877 2010-02-09 09:57 Inet6Address.h -rw-r--r-- 1 root root 2410 2010-02-09 09:57 InetAddress.h -rw-r--r-- 1 root root 1311 2010-02-09 09:57 InetSocketAddress.h -rw-r--r-- 1 root root 1416 2010-02-09 09:57 JarURLConnection.h -rw-r--r-- 1 root root 640 2010-02-09 09:57 MalformedURLException.h -rw-r--r-- 1 root root 910 2010-02-09 09:57 MimeTypeMapper.h -rw-r--r-- 1 root root 1470 2010-02-09 09:57 MulticastSocket.h -rw-r--r-- 1 root root 678 2010-02-09 09:57 NetPermission.h -rw-r--r-- 1 root root 1388 2010-02-09 09:57 NetworkInterface.h -rw-r--r-- 1 root root 658 2010-02-09 09:57 NoRouteToHostException.h -rw-r--r-- 1 root root 794 2010-02-09 09:57 PasswordAuthentication.h -rw-r--r-- 1 root root 671 2010-02-09 09:57 PortUnreachableException.h -rw-r--r-- 1 root root 613 2010-02-09 09:57 ProtocolException.h -rw-r--r-- 1 root root 932 2010-02-09 09:57 Proxy.h -rw-r--r-- 1 root root 859 2010-02-09 09:57 ProxySelector.h -rw-r--r-- 1 root root 1236 2010-02-09 09:57 ResolverCache.h -rw-r--r-- 1 root root 2194 2010-02-09 09:57 ServerSocket.h -rw-r--r-- 1 root root 564 2010-02-09 09:57 SocketAddress.h -rw-r--r-- 1 root root 599 2010-02-09 09:57 SocketException.h -rw-r--r-- 1 root root 3207 2010-02-09 09:57 Socket.h -rw-r--r-- 1 root root 577 2010-02-09 09:57 SocketImplFactory.h -rw-r--r-- 1 root root 1797 2010-02-09 09:57 SocketImpl.h -rw-r--r-- 1 root root 1129 2010-02-09 09:57 SocketOptions.h -rw-r--r-- 1 root root 1839 2010-02-09 09:57 SocketPermission.h -rw-r--r-- 1 root root 670 2010-02-09 09:57 SocketTimeoutException.h -rw-r--r-- 1 root root 634 2010-02-09 09:57 UnknownHostException.h -rw-r--r-- 1 root root 655 2010-02-09 09:57 UnknownServiceException.h -rw-r--r-- 1 root root 5328 2010-02-09 09:57 URI.h -rw-r--r-- 1 root root 970 2010-02-09 09:57 URISyntaxException.h -rw-r--r-- 1 root root 3117 2010-02-09 09:57 URLClassLoader.h -rw-r--r-- 1 root root 4212 2010-02-09 09:57 URLConnection.h -rw-r--r-- 1 root root 591 2010-02-09 09:57 URLDecoder.h -rw-r--r-- 1 root root 678 2010-02-09 09:57 URLEncoder.h -rw-r--r-- 1 root root 3176 2010-02-09 09:57 URL.h -rw-r--r-- 1 root root 647 2010-02-09 09:57 URLStreamHandlerFactory.h -rw-r--r-- 1 root root 1654 2010-02-09 09:57 URLStreamHandler.h -rw-r--r-- 1 root root 816 2010-02-09 09:57 VMInetAddress.h -rw-r--r-- 1 root root 572 2010-02-09 09:57 VMNetworkInterface.h -rw-r--r-- 1 root root 803 2010-02-09 09:57 VMURLConnection.h Comme je n'ai aucune idée de la forme que ça a, je peux me tromper mais si c'est bien ça, il faut que je dise à mon compilateur java de regarder dans ce répertoire. Comment je fais ça ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
pamputt Posté(e) le 2 février 2011 Auteur Partager Posté(e) le 2 février 2011 Pas grand chose à ajouter si ce n'est quelques remarques sur les propos de foetus - Main$Toto ne signifie pas que Toto est dans le fichier Main.java mais que c'est une classe interne à Main. - On peut très bien mettre les sources dans un jar, c'est juste que ça n'est pas fait par défaut. - Le compilateur compile là où tu lui dis. Sous Eclipse par défaut, c'est un répertoire bin. Mais tu peux aussi compiler chaque .class dans le répertoire du .java ou compiler ailleurs. - Si tu ne mets pas les sources dans ton jar ni les informations de debug, tu ne pourras pas retrouver exactement le source de ton code. Tout dépend de comment tu génères ton jar. Après, un outil comme jad reste assez efficace. Mon "problème" c'est que je compile avec configure, make, make install et pas avec des trucs comme eclipse ou autre. Ou alors je ne sais pas comment adapter ce qu'on me dit concernant eclipse à mon cas. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 2 février 2011 Partager Posté(e) le 2 février 2011 Ce n'est pas une classe de la JVM. Appremment, y en a une javadoc sur ce site : http://bob.i2p.to Mais je ne vois pas de lien pour la télécharger. Lien vers le commentaire Partager sur d’autres sites More sharing options...
JohnSmith Posté(e) le 3 février 2011 Partager Posté(e) le 3 février 2011 Mais je ne vois pas de lien pour la télécharger. Peut-être par la-bas : http://www.i2p2.de Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 3 février 2011 Partager Posté(e) le 3 février 2011 J'y suis allé aussi, mais ça a l'air d'être une nouvelle version de la librairie avec des classes différentes. A mon avis, il faut plutôt se poser la question : pourquoi Imule ? Le projet a pas l'air très up to date ... Y a-t-il une fonctionnalité qui n'existe pas dans les autres clients ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
BarthVonRies Posté(e) le 11 février 2011 Partager Posté(e) le 11 février 2011 J'y suis allé aussi, mais ça a l'air d'être une nouvelle version de la librairie avec des classes différentes. A mon avis, il faut plutôt se poser la question : pourquoi Imule ? Le projet a pas l'air très up to date ... Y a-t-il une fonctionnalité qui n'existe pas dans les autres clients ? Si j'ai bien compris, ce n'est pas lMule, mais iMule, qui permet de faire du p2p sur le réseau i2p (donc du p2p anonyme, un peu comme freenet grosso modo). Ca permet par exemple de ne pas se faire gauler par hadopi (ou pire, suivant les fichiers téléchargés). Lien vers le commentaire Partager sur d’autres sites More sharing options...
imperialsun Posté(e) le 11 février 2011 Partager Posté(e) le 11 février 2011 si tu trouve pas la classe t'est foutu. Les méthodes ressemblent a la classe de la jvm java.net test on sait jamais Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.