Comment puis-je compiler les classes de paquets, de les exécuter plus tard avec “java” (sans le nom du paquet)?

J'ai une petite question concernant javac et packages en Java.

J'ai un programme simple (que nous appellerons Program.java) qui est actuellement dans le répertoire suivant:

  • myRepository/myProgram

Dans Program.java et autres .fichiers java dans le myRepository/myProgram répertoire, je l'ai déclaré à package myProgram.* et également inclus import myProgram.*;.

Donc quand je tape javac myProgram/Program.java, il compile bien et il fonctionne très bien si je tape java myProgram/Program.

Cependant, je vais essayer d'obtenir les .les fichiers de classe pour être produite dans le myRepository annuaire, pas myRepository/myProgram, qui est l'endroit où les fichiers source sont. J'ai essayé javac myProgram/Program.java -d .. qui produit le .les fichiers de classe dans myRepository répertoire, mais quand j'essaie de "Programme java", il me donne l'erreur suivante:

Exception in thread "main" java.lang.NoClassDefFoundError: Programme (mauvais nom: myProgram/Programme).

Est-il de toute façon que je pouvais obtenir .les fichiers de classe à apparaître dans le répertoire principal (myRepository), au lieu d'où les codes sources sont (myRepository/myProgram) et être en mesure d'exécuter java Program tandis qu'à l'intérieur myRepository?

OriginalL'auteur FlamesPuck12 | 2011-02-06