web-dev-qa-db-fra.com

Comment exécuter le fichier .class Java à partir d'un autre fichier .class? (Java newb)

J'ai utilisé différents fichiers .Java Java individuels dans Netbeans IDE en cliquant avec le bouton droit de la souris sur les fichiers .Java eux-mêmes dans l'Explorateur de projets de Netbeans (la partie située normalement dans la partie supérieure gauche de Netbeans).

Cependant, j'ai cherché sur Google comment faire en sorte qu'un fichier de classe exécute un autre fichier de classe en utilisant du code, mais en vain.

J'ai un projet nommé "loadanotherfile" avec 2 fichiers, à savoir: Loadanotherfile.Java et otherfile.Java

J'essaie de faire en sorte que Loadanotherfile.Java exécute otherfile.Java, mais je ne sais pas exactement comment. J'ai lu des articles sur Classloaders et URLClassloaders, mais ces méthodes ne me semblent pas adaptées à l'exécution d'un autre fichier .Java. 

Vous trouverez ci-dessous le code des 2 fichiers que j'ai mentionnés.

Loadanotherfile.Java

package loadanotherfile;

public class Loadanotherfile {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        System.out.println("Hello World!");
        // TODO code application logic here
    }
}

autrefichier.Java

package loadanotherfile;

public class otherfile {

    public static void main(String args[])
    {
        System.out.println("This is the other file.");
    }
}

J'ai l'impression que la tâche a quelque chose à voir avec l'utilisation de la syntaxe "import" (à savoir quelque chose comme: import loadanotherfile. * mais même si ma proposition est correcte, je ne suis toujours pas sûr de savoir comment créer mon Loadanotherfile .Java lance otherfile.Java en utilisant du code.

Comment puis-je charger otherfile.Java en utilisant Loadanothefile.java?

À votre santé

9

Dans Loadanotherfile.Java

otherfile.main(args);
12
Matt Clark

Compilez les deux ensemble, puis à partir de Loadanotherfile

otherfile.main(args);

fera l'affaire. Vous n'avez pas besoin d'importer puisque vous êtes dans le même package . Notez le tutoriel lié.

J'étudierais (cependant) l'instanciation de classe et créerais une instance d'une nouvelle classe à invoquer. L'appel de méthodes statiques à partir de méthodes statiques n'est pas très OO.

7
Brian Agnew

Essaye ça:

className.main(Args){
}

Cela marche! Je l'ai testé moi-même.

2
user3343456

Vérifiez la ligne public void main. S'il y a IOException et pas là, alors insérerin Loadanotherfile.Java

utilisez ceci 

otherfile.main(args);{
}
0
DNS v4.7