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

Résolu
Signaler
Messages postés
181
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009
-
Messages postés
649
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
9 septembre 2004
-
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

Messages postés
649
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
9 septembre 2004
7
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...
Messages postés
649
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
9 septembre 2004
7
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?
Messages postés
649
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
9 septembre 2004
7
Au fait si tu veut modifier le bytecode il existe deja des librairies comme bcel ...
Messages postés
181
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

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 :)
Messages postés
649
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
9 septembre 2004
7
????????

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 ....
Messages postés
649
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
9 septembre 2004
7
sinon au dehors du java, tu peus ouvrir le .class directement (ou le copier pour l'utiliser comme un fichier ordinaire)
Messages postés
181
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

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 :)
Messages postés
649
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
9 septembre 2004
7
la t'utilise les reflects alors (truc.getClass().getDeclaredMethod("methode").invoke("arg"))
Messages postés
181
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

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 :)
Messages postés
649
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
9 septembre 2004
7
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...
Messages postés
181
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

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 :)
Messages postés
649
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
9 septembre 2004
7
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
Messages postés
181
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

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 :)
Messages postés
181
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

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 :)
Messages postés
181
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

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 :)