Rechercher : dans
Par :

Executer class java par son nom string

Dernière réponse le 28 aoû 2007 à 18:24:44 MallouH, le 24 aoû 2007 à 00:53:22 
 Signaler ce message aux modérateurs

Salut
J'ai un probleme. s v p aidez moi a le resoudre. je veus executer une classe a partir d'une variable string qui porte son nom. comment faire?
plus de detail si je met par exemple : nomclass a = new nomclass(); ca marche
mais mois je veus executer cette class a partir de la variable par exemple "laclass" declarée comme suit:
String laclass = "nomclass";
je veus ecrire : laclass a = naw laclass();
mais ca ne marche pas car laclass est string non class
j'espere que j'etais claire
j'attend votre reponse
merci

Meilleures réponses pour « executer class java par son nom string » dans :
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
Java: les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans...
Java - Les packages VoirIntroduction aux packages La programmation Java consiste à créer des classes. Or, étant donné qu'un programme est généralement développé par une équipe de programmeurs, c'est-à-dire plusieurs personnes, le fait de concaténer (mettre bout à bout)...

1

choubaka, le 24 aoû 2007 à 07:47:04

Salut

tu dois utiliser la méthode statique "forName" de la classe "Class"

forName
public static Class forName(String className)
                     throws ClassNotFoundExceptionReturns the Class object associated with the class or interface with the given string name. Invoking this method is equivalent to: 
  Class.forName(className, true, currentLoader)
 where currentLoader denotes the defining class loader of the current class. 
For example, the following code fragment returns the runtime Class descriptor for the class named java.lang.Thread: 

   Class t = Class.forName("java.lang.Thread")
 A call to forName("X") causes the class named X to be initialized. 


Parameters:
className - the fully qualified name of the desired class. 
Returns:
the Class object for the class with the specified name. 
Throws: 
LinkageError - if the linkage fails 
ExceptionInInitializerError - if the initialization provoked by this method fails 
ClassNotFoundException - if the class cannot be located
Chouba,
Pochard d'assaut .. 

Répondre à choubaka

2

MallouH, le 24 aoû 2007 à 18:00:23

Salut,
merci pour la reponse mais j'ai pas encors resolut mon pb. En effet lorsque j'execute par exemle
Class t = Class.forName("ex.monclass");
ca ne me permet pas d'executer cette class (monclass)
et l'orsque j'affiche le contenue de t il m'afiche ( class ex.monclass)
an outre c quoi l'equivalent de l' instruction ( monclass n = new monclass();)
en utilisant une variable
string var = "monclass";
merci encors

Configuration: Windows XP
Opera 9.23

Répondre à MallouH

3

choubaka, le 24 aoû 2007 à 19:09:14

Je comprends pas très bien ta question ... sorry Chouba,
Pochard d'assaut .. 

Configuration: Windows Vista
Internet Explorer 7.0

Répondre à choubaka

4

MallouH, le 24 aoû 2007 à 19:37:51

Comment je peut executer une class jave a partir de son nom?
svp aidez moi

Configuration: Windows XP
Opera 9.23

Répondre à MallouH

5

arth, le 24 aoû 2007 à 20:46:58

En même temps :

Class t = Class.forName("ex.monclass");
ca ne me permet pas d'executer cette class (monclass)

Si tu donnes ex.monclass en entrée en voulant exécuter monclass, normal que cela ne fonctionne pas...
Le loup, solitaire et mystérieux.

Répondre à arth

6

MallouH, le 25 aoû 2007 à 15:57:48

Si c normal qui ne fonctionne pas avec Class t = Class.forName("ex.monclass"); et c logique
alors comment il peut fonctionner ?
svp aider moi

Configuration: Windows XP
Opera 9.23

Répondre à MallouH

7

choubaka, le 27 aoû 2007 à 08:56:45

Ton string doit contenir le nom exacte de ta classe ... le "ex." est de trop

si "ex" est le package qui contient ta classe, il suffit de créer un import

Chouba,
Pochard d'assaut .. 

Configuration: Windows Vista
Internet Explorer 7.0

Répondre à choubaka

8

 Jres, le 28 aoû 2007 à 18:24:44

Bonsoir,

String className= "Test";
Class myClass = Class.forName( className );
Test myTestInstance= (Test) myClass.newInstance();

N'hésite pas à utiliser l'API, elle est là pour ça.

Répondre à Jres