2012-10-02 2 views
0

Par exemple: je me suis une classe Java avec la principale fonction implémentée comme ceci:Comment puis-je appeler une fonction principale d'une classe Java?

public class Job{ 
    public static void main(String[] args) throws Exception{ 
     Job jobA = new Job(); 
     String jobName = System.getProperty("JobName"); 
     job.DoJobA("jobName"); 
    } 

    public void DoJobA(String jobName){ 
     String configPath = System.getProperty("ConFig"); 
     File file = new File(configPath+ "/" + jobName); 
     DoJobB(file); 
    } 
} 

Et je une autre classe et que vous voulez appeler la fonction principale de la classe d'emploi, mais ne pouvait pas trouver un moyen de le faire ! Est-ce qu'il y a des conseils pour moi?

+3

Pourquoi voulez-vous appeler uniquement la méthode 'main' d'une autre classe? Ne pouvez-vous pas écrire une autre méthode simple et l'appeler? – RAS

+1

@RAS vous avez raison. C'est un meilleur modèle pour mettre le code dans une autre méthode, et appelez cette nouvelle méthode de la classe principale et l'autre classe. – Andy

+0

Depuis ce cours a été écrit par un autre et je ne veux pas le changer! Et cette classe est utilisée pour être appelée par un fichier de script shell, et il est facile de transmettre la propriété système lors de l'utilisation du script shell pour exécuter cette fonction principale! Juste ne sais pas comment le gérer en utilisant Java! –

Répondre

8

Vous devriez pouvoir l'appeler comme vous appelez toute autre méthode statique

Job.main(yourArgs);

+0

est-ce quelque chose comme ça? Job.main (new String [] {"File1", "Config1"}; et comment le programme peut-il indiquer quel argument est pour jobName et quel argument est pour la configuration? –

+1

Yes. La méthode principale accepte un tableau de chaînes comme argument Vous pouvez passer n'importe quel tableau de chaînes que vous aimez Il n'est pas un ensemble de paires clé-valeur comme je pense que vous attendez.Par exemple, il ne peut pas vous dire quel paramètre est ce qui est facile. – techfoobar

1

Si vous faites les principales utilisation de la méthode var args alors vous ne avez pas besoin de passer dans une variable

public static void main(String... args) throws Exception{ 
    ... 
} 

alors vous pouvez simplement l'appeler comme

Job.main(); 

si vous avez besoin d'arguments, vous pouvez les passer si.

Questions connexes