Pb de classloader [recuperer l'exec. dune class...]

Résolu
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009 - 26 juil. 2004 à 18:15
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 - 27 juil. 2004 à 15:33
Bonjour je cherche a recuperer le resultat de l'execution d'une class mais a mon grand malheur je galère .. la seule methode bien ki ma paru fesable c de faire

package fr.package;

public class Parameter {
public static Object getParameter() throws IOException {
int i=60;
InputStream par= ClassLoader.getSystemResourceAsStream("fr.package.testjob()");

while(par==null){
InputStream par2 = (InputStream) getStream();
//System.out.println(par2);
i++;
if(i==160){
return "true";//voir si des fois par != null
}
par=par2;
}
BufferedReader in = new BufferedReader(new InputStreamReader(par));

String str="null";

while (in.readLine()!=null){
//si qqchose a lire continue
str = in.readLine();
//alors li et met dans la String
}
return str;
}
public static Object getStream() throws IOException{
InputStream par= ClassLoader.getSystemResourceAsStream("fr.package.testjob()");
return par;
}
public static void main(String[] args) {
}
}

voila la methode"getParameter" qui permet de recuperer le resultat de la class testjobs mais la elle me revoit un resultat null... qqun sait pk??

le reste sert a la ocnvertir en string et a verifier si par est null ou pas....

Merci de votre aide

www.crisenouilleenforce.fr.vu
le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....

Syruis :)

15 réponses

wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
27 juil. 2004 à 15:33
Si t'as encore des questions, creer un nouveau topic je commence a m'y perdre.

Le fait est qu'il faut faire :
runtime.exec("java fr.package.testjob"); et pas fr.package.testjob()

si tu veut utiliser l'autre solution : fr.package.testjob.Main({"myarg"});

le process te renvoie des Stream: tu peut les surcharger en printwriter bufferedReader pour recuperer des strings...
3
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
27 juil. 2004 à 09:09
c'est ClassLoader.getSystemResourceAsStream("javax/swing/JFrame.class");

qu'il faut utiliser si tu veut obtenir la classe JFrame par exemple. (la classe doit etre dans le classpath)

Qu'est ce que tu veux faire avec?
0
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
27 juil. 2004 à 09:11
Au fait si tu veut modifier le bytecode il existe deja des librairies comme bcel ...
0
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
27 juil. 2004 à 10:13
non je veut juste recuperer le resultat le al compilation je sais le faire mais ca devrait pas renvoyer une string au final jai un int....

www.crisenouilleenforce.fr.vu
le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....

Syruis :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
27 juil. 2004 à 10:37
????????

non je veut juste recuperer le resultat le al compilation je sais le faire mais ca devrait pas renvoyer une string au final jai un int...

explique toi ....
0
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
27 juil. 2004 à 10:40
sinon au dehors du java, tu peus ouvrir le .class directement (ou le copier pour l'utiliser comme un fichier ordinaire)
0
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
27 juil. 2004 à 10:49
autant pour moi je dois recuperer le resultat de l'execution...
www.crisenouilleenforce.fr.vu
le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....

Syruis :)
0
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
27 juil. 2004 à 12:07
la t'utilise les reflects alors (truc.getClass().getDeclaredMethod("methode").invoke("arg"))
0
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
27 juil. 2004 à 12:26
vi ... mais truc.getClass().getDeclaredMethod("methode").invoke("arg"))
ca renvoi pas un PrintStream par hasard??

pis att ca sert a quoi a recuperer la methode qui permet de recuperer le resultat????

www.crisenouilleenforce.fr.vu
le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....

Syruis :)
0
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
27 juil. 2004 à 12:30
ptain la je vais sortir ma sciences du francais....
"autant pour moi" ca veut rien dire en realité c'est
"Au temps pour moi" :)))

par contre je comprend vraiment pas ce que tu cherches a faire....
pq recuperer le code compilé.... alors que l'on peut le faire par un acces fichier...
0
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
27 juil. 2004 à 13:18
MAIS JE VEUT PAS DU CODE COMPILE!!!!!!!!!!!!

JE VEUT LE RESULTAT DE L'EXECUTION C PAS DU CODE!!!!!!!!!

www.crisenouilleenforce.fr.vu
le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....

Syruis :)
0
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
27 juil. 2004 à 13:59
ahhhhhhhhhhhhhh

soit tu fais mumuse avec le runtime

Process p=Runtime.getRuntime().exec(machin);

p.getOutputStream() => le input de ton executable
p.getErrorStream() => Stream d'erreur
p.getInputStream() => resultat normal du fichier

ou tu utilises

System.setOut(...) System.setIn()....
puis taClass.Main(argc);

et tu recupere les sorties
0
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
27 juil. 2004 à 14:18
c quoi le mieux ca renvoi des string ca???

www.crisenouilleenforce.fr.vu
le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....

Syruis :)
0
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
27 juil. 2004 à 15:04
euh ui ca marche presque sauf que la ca me revoi une erreur 500:
java.io.IOException: CreateProcess: fr.package.testjob() error=2
java.lang.Win32Process.create(Native Method)
java.lang.Win32Process.(Win32Process.java:66)
java.lang.Runtime.execInternal(Native Method)[....]
at java.lang.Thread.run(Thread.java:534)

qqun sait a quoi ca correspond??

www.crisenouilleenforce.fr.vu
le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....

Syruis :)
0
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
27 juil. 2004 à 15:15
ya 2 raison a mon pb je pense il creer un process deja creer ... ou mon process na pas les bonnes propriétés...

HELP!

www.crisenouilleenforce.fr.vu
le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....

Syruis :)
0
Rejoignez-nous