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.
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"
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 classesrc/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 .classmyjava.Main
est le nom de la classe à exécuterPour courir, il vous suffit
Java Main
au lieu de mettre chaque classe sur la ligne de commande.
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?
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.
Suivez ces étapes (les exemples de code ne sont que des exemples, vous devrez en modifier quelques-uns pour votre configuration):
Définissez Java_HOME dans le répertoire où le JDK est installé.
set Java_HOME = "c:\Program Files\Java\jre1.6.0_12"
Définissez votre variable PATH pour inclure le répertoire bin
dans Java_HOME.
définir PATH =% PATH%:% Java_HOME%\bin
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
Exécutez javac avec vos fichiers Java comme argument:
javac Class1.Java Class2.Java
(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
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
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.