web-dev-qa-db-fra.com

Comment exécuter un projet NetBeans à l’invite de commande?

Mon professeur nous a demandé de créer un programme Java capable de s'exécuter dans la commande Prompt mais pouvant également être ouvert à l'aide de NetBeans.

Le programme concerne l’utilisation des différents types de tri (notamment le tri par sélection, insertion, échange, rapide et tas). notre professeur nous a spécifiquement dit d'utiliser la programmation orientée objet en Java et qu'elle souhaitait voir une classe principale plus les différentes classes qui effectueraient le tri.

J'ai essayé d'écrire le programme dans NetBeans - pensant que plus tard, je pourrais simplement l'exécuter dans cmd en utilisant javac.

Dans cmd, j'ai tapé le chemin où mon projet NetBeans a été enregistré et j'ai essayé de compiler les fichiers en utilisant javac. mais il est indiqué que "'javac' n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes."

J'ai donc essayé de sauvegarder les fichiers dans Sun> sdk> jdk> bin, puis à partir de là, j'ai essayé de compiler les fichiers, et tout s'est bien passé. Le problème se pose lorsque j'ai essayé de les exécuter.

Voici comment j'ai essayé de compiler les fichiers:

javac Main.Java
      Sortchoice.Java
      Selection.Java
      SelectionSort.Java
      Insertion.Java
      InsertionSort.Java
      Exchange.Java
      ExchangeSort.Java

(Je n'ai pas terminé la syntaxe pour le tri suivant.)

Voici comment j'ai essayé d'exécuter les fichiers dans cmd:

Java Main Sortchoice Selection SelectionSort Insertion InsertionSort Exchange ExchangeSort

et cmd dit:

exception in thread "main" Java.lang.NoClassDefFoundError: main (wring name: myjava/Main)
at Java.lang.ClassLoader.defineClass1(Nativ... Method)"
at Java.lang.ClassLoader.defineClass(ClassL...
at Java.security.SecureClassLoader.defineCl...
at Java.net.URLClassLoader.defineClass(URLC...
at Java.net.URLClassLoader.access$000(URLCl...
at Java.net.URLClassLoader$1.run(URLClassLo...
at Java.security.AccessController.doPrivile... Method)
at Java.net.URLClassLoader.findClass(URLCla...
at Java.lang.ClassLoader.loadClass(ClassLoa...
at Sun.misc.Launcher&AppClassLoader.loadCla...
at Java.lang.ClasLoader.loadClass(ClassLoad...
at Java.lang.ClassLoader.loadClassInternal(...

Que devrais-je faire? (Désolé pour mon explication long kilométrique. Je voulais juste ajouter autant de détails que possible.)

Je tiens également à souligner que je ne suis qu'un débutant en programmation Java.

14
charisse

Si vous cliquez sur Build dans NetBeans, cela devrait vous donner (dans la sortie du compilateur) un message du type "Pour exécuter cette application à partir de la ligne de commande sans Ant, essayez: Java -jar yourPathToRun"

22
Cricket

La meilleure façon de le faire est la suivante:

1) créez un répertoire avec src\ et tests\ (les tests sont facultatifs si vous n’utilisez pas JUnit).

2) en supposant que vous ayez package myjava; en haut de vos fichiers (et assurez-vous que c’est ce que veut votre prof, cela devient difficile de marquer des choses si elles ne sont pas au bon endroit), créez un répertoire src\myjava (et si vous êtes faire JUnit un répertoire tests\myjava).

3) copiez vos fichiers dans le répertoire src\myjava

4) supprimez votre projet NetBeans et recréez-le comme un nouvel acteur avec des sources existantes. Lorsque vous configurez les répertoires src (et test facultatif), ajoutez le répertoire src\ (et éventuellement le tests\). NE PAS ajouter le répertoire src\myjava ou cela ne fonctionnera pas dans NetBeans.

5) créez un répertoire appelé classes\ (vous avez donc src\, classes\ et peut-être \tests au même endroit)

6) sur le type de ligne de commande javac -d classes -cp classes src/myjava/*.Java

  • -d indique au compilateur où placer les fichiers .class
  • -cp indique au compilateur où rechercher les fichiers de classe
  • src/myjava/*.Java lui dit de compiler tous les fichiers .Java dans src/myjava

7) l'exécuter via Java -cp classes myjava.Main

  • -cp classes lui dit de chercher dans le répertoire classes les fichiers .class
  • myjava.Main est le nom de la classe à exécuter
12
TofuBeer
  1. Il serait préférable d’ajouter javac à votre variable d’environnement PATH au lieu de placer les fichiers .Java dans le même répertoire. Il y aura énormément de monde là-bas.
  2. Pour courir, il vous suffit

    Java Main

    au lieu de mettre chaque classe sur la ligne de commande.

  3. Avez-vous déclaré un paquet dans vos fichiers .Java? Comme,

    emballer myjava;

    ? Si c'est le cas, la chaîne de commande doit être

    Java myjava.Main

Cela répond-t-il à vos questions?

6
Michael Myers

Cliquez avec le bouton droit de la souris sur Poste de travail> Propriétés> Avancé> Variables d'environnement ... ajoutez le répertoire bin de jdk à la variable Path Exemple: Nom de la variable: path Valeur de la variable: C:\Program Files\Java\jdk1.6.0_16\bin

Java et javac devraient maintenant fonctionner à partir de n’importe quel répertoire de la commande Invite.

1
Busta

Suivez ces étapes (les exemples de code ne sont que des exemples, vous devrez en modifier quelques-uns pour votre configuration):

  1. Définissez Java_HOME dans le répertoire où le JDK est installé.

    set Java_HOME = "c:\Program Files\Java\jre1.6.0_12"

  2. Définissez votre variable PATH pour inclure le répertoire bin dans Java_HOME.

    définir PATH =% PATH%:% Java_HOME%\bin

  3. Passez au répertoire racine de votre code source. Si vous avez déclaré que votre code est dans des packages, il s'agit du répertoire racine de votre structure de package. Sinon, c'est le répertoire qui contient vos fichiers .Java:

    cd c:\mon\source\répertoire

  4. Exécutez javac avec vos fichiers Java comme argument:

    javac Class1.Java Class2.Java

  5. (En supposant que tout se compile correctement) Exécutez Java avec le nom de la classe contenant votre méthode main comme argument (si vous incluez des déclarations de package, votre nom de classe est alors qualifié complet. un '.' séparant le nom du paquet du nom de la classe):

    Java principal

0
Jared

Créez un dossier quelque part, dites C:\myjava. Copiez vos fichiers source .Java à partir de l'endroit où netbeans les enregistre sur votre C:\Java par exemple. Ouvrez chacun des fichiers .Java que vous venez de coller et supprimez la ligne indiquant le package, par exemple package myjava. Compiler en utilisant javac par ex. javac c:\myjava\MyJava.Java. Puis exécutez-le comme dans, Java c:\myjava\MyJava

0
Omar

La méthode la plus simple consiste à exécuter le fichier .jar dans le dossier dist, dans le dossier principal de votre projet. Assurez-vous que le chemin d'accès au dossier jdk bin dans la variable System, Environmental Variables de votre ordinateur est configuré pour rechercher les éléments habituels: jar.exe, Java.exe, javac.exe, etc.

1) Dans Netbeans, faites un build propre, appuyez sur F11 ou cliquez sur le menu Run et cliquez sur Build Project. Cliquez à travers pour passer toutes les invites, vous avez besoin d'une version propre pour le faire.

2) dans la commande Invite, accédez au dossier dist de votre projet

3) sur la ligne de commande, tapez et exécutez: Java -jar yourMainFile.jar

Pas de création de dossiers séparés, pas de copie de fichiers, pas de fichiers multiples à inclure dans l'argument de ligne de commande. Mais vous devrez reconstruire votre projet chaque fois que vous modifiez votre code avant de l'exécuter sur la ligne de commande.

0
Michael Swartz