web-dev-qa-db-fra.com

Utiliser Notepad ++ pour compiler Java code

J'ai essayé de configurer Notepad ++ comme un petit environnement Java, principalement pour apprendre Java car j'avais du mal à obtenir un programme simple pour travailler avec NetBeans, malheureusement tous les conseils sur la configuration de Notepad ++ pour appeler le code Java ne fonctionne pas.

Je suppose que notepad ++ a changé ou que le Java a été massivement modifié car tous les exemples que j'ai utilisés entraînent des erreurs, même s'il y a peu de place pour l'erreur.

pour commencer j'ai trouvé ce site: http://blog.sanaulla.info/2008/07/25/using-notepad-to-compile-and-run-Java-programs/

c'est le code pour exécuter Javac pour compiler le code:

javac “$(FILE_NAME)”

et

Java “$(NAME_PART)”

pour exécuter le code d'octet résultant, mais cela n'a absolument plus de succès. Java est correctement configuré et je peux appeler le programme Java pour faire son travail via CMD.

L'utilisation d'un plugin appelé npp et appelé via F6 et exécuté avec ce code (indiqué dans les commentaires) réussit à compiler le programme Java dans le fichier .class correct, mais la commande n'a pas réussi à exécuter le programme

cd “$(CURRENT_DIRECTORY)”
javac $(FILE_NAME)
Java $(NAME_PART)

les erreurs de la console dans Notepad ++ sont:

Java.lang.NoClassDefFoundError: first
Caused by: Java.lang.ClassNotFoundException: first
  at Java.net.URLClassLoader$1.run(Unknown Source)
  at Java.security.AccessController.doPrivileged(Native Method)
  at Java.net.URLClassLoader.findClass(Unknown Source)
  at Java.lang.ClassLoader.loadClass(Unknown Source)
  at Sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
  at Java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: first.  Program will exit.
Exception in thread "main"

J'ai pensé que configurer Notepad ++ pour compiler et exécuter le code serait facile et amusant, mais il semble que toute la documentation sur Internet soit obsolète car rien ne fonctionne.

Je voudrais un moyen facile de compiler et d'exécuter Java code à partir de Notepad ++

Je pourrais simplement utiliser CMD mais je préfère qu'il soit plus intégré dans le bloc-notes ++

Merci pour toute aide possible. à votre santé :)

EDIT: j'utilise la dernière version de Java, notepad ++ et j'ai Windows 7

EDIT 2: le code:

 //A Very Simple Example
 class ExampleProgram {

   public static void main(String[] args){

        System.out.println("I'm a Simple Program");
   }
 }
25
Joseph

La `` courbe d'apprentissage '' associée aux IDE comme Eclipse ou Netbeans implique initialement principalement ce que vous avez déjà ci-dessus - la connaissance de la définition des chemins de classe, des variables d'environnement, etc. Au lieu de Notepad ++ (que j'adore, mais ce n'est pas "fait" pour Java), je recommanderais Eclipse surtout si vous avez un PC grunty (c'est un peu gourmand en mémoire). Mis à part la configuration des chemins, après cela, vous serez prêt à basculer.

Et Eclipse étant activement et ouvertement développé est l'un des IDE les plus documentés. Les tutoriels sont destinés à fonctionner correctement pour cela :). Mais sérieusement, c'est plutôt bien. Et puis, lorsque vous souhaitez étendre à Android développement en Java, ou un autre type de programmation Java, vous chargez simplement les compléments requis, et vous êtes en train de rire. Il prend également en charge le débogage, dont Notepad ++ ne peut certainement pas rivaliser.

16
Mark Mayo

Changement probable de la dernière ligne en:

Java -cp . $(NAME_PART)

travaillera pour vous. Le problème est que vous ne configurez pas le chemin de classe.

Notepad ++ conviendra parfaitement pour la compilation d'un projet de fichier unique. Pour quoi que ce soit de plus, vous aurez besoin d'un IDE ou au moins intégrer avec ant au lieu de Java compilateur).

2
kgiannakakis

Définissez le chemin de classe dans la commande Java comme ceci:

Java -classpath “$(CURRENT_DIRECTORY)” “$(NAME_PART)”
1
dogbane

Bien que je sois convaincu que vous devez travailler avec un IDE (NetBeans, Eclipse, IntelliJ IDEA (que j'utilise), je pense qu'il est toujours bon de savoir et apprendre ce qui échoue dans votre petit exemple. Avec un IDE, l'environnement de compilation et d'exécution sont configurés, mais en tant que développeur, il est important de comprendre les concepts de base cachés.

A partir du lien que vous avez posté, voici les variables d'environnement que vous devez définir

FULL_CURRENT_PATH: C:\Documents and Settings\Administrator\My Documents\JavaP\ExampleProgram.Java
CURRENT_DIRECTORY: C:\Documents and Settings\Administrator\My Documents\JavaP\
FILE_NAME: ExampleProgram.Java
NAME_PART: ExampleProgram
EXT_PART:Java

Assurez-vous que tout est nommé en fonction de ces paramètres, à savoir:

- your source file is under C:\Documents and Settings\Administrator\My Documents\JavaP\
- your source file is named ExampleProgram.Java
1
sly7_7

J'ai récemment rencontré cette situation dans Windows 7 64 bits. Notepad ++ est un programme 32 bits, donc Windows a activé la "Redirection du système de fichiers" sur lui et ses plugins (y compris NppExec), selon http://msdn.Microsoft.com/en-us/library/windows /desktop/aa384187(v=vs.85).aspx . J'ai également installé le dernier JDK 8.xx 64 bits, mais un JRE 7.xx 32 bits plus tôt.

Maintenant, le programme d'installation JRE 7.xx avait placé une copie (ou un lien dur, je n'ai pas vérifié) de Java.exe dans son C:\Windows\system32 - qui est en fait C:\Windows\SysWOW64\Java.exe. Ce n'est pas dans le CHEMIN des applications 64 bits comme cmd.exe, mais dans le CHEMIN (redirigé) des applications 32 bits.

Ensuite, après avoir installé JDK 8.xx, le programme d'installation n'a pas mis à jour mon PATH, j'ai donc ajouté l'emplacement d'installation de JDK à la fin de mon PATH. À partir de là, le comportement que j'ai observé était:

  • À partir de l'invite de commande Windows (cmd.exe, 64 bits) - javac.exe et Java.exe provenaient de l'emplacement JDK 8.xx (C:\Program Files\Java\jdk1.8.0_05\bin).
  • À partir de Notepad ++ (32 bits), la version JDK de javac.exe était invoquée mais le Java.exe était en fait exécuté à partir de C:\Windows\SysWOW64\Java.exe - conduisant à ce type de problème de chargement.

Le correctif consistait à mettre à jour ou à supprimer le JRE 32 bits.

0
Tanz87

Vous pouvez utiliser Eclipse comme suggéré ci-dessus et créer simplement un projet Java. Après avoir créé le projet, glissez-déposez simplement le fichier Java avec lequel vous souhaitez travailler) dans le projet et sélectionnez l'option de fichier de liaison. De cette façon, Eclipse créera une copie de votre fichier et la liera à votre fichier, ce qui signifie que chaque modification apportée à un fichier sera copiée dans l'autre.

0
oscarMg

vous pouvez utiliser ce petit code dans le module "run" de notepad ++:

cmd /k "cd /D "$(CURRENT_DIRECTORY)" & Java "$(NAME_PART)""

remarque: il s'agit de la même solution de code qu'ils ont utilisée pour exécuter python dans le bloc-notes ++ comme expliqué dans cette rubrique: Comment exécuter un fichier Python dans Notepad ++?

0
RooGi

J'ai trouvé cela lien utile.

Cependant, le NppExec semble livré avec son propre JRE, j'ai donc changé les scripts pour cela (cela signifie que vous devez coder en dur Java):

cd $(CURRENT_DIRECTORY)
C:\App\Java\jdk1.8.0_112\bin\Java -version
C:\App\Java\jdk1.8.0_112\bin\javac $(FILE_NAME)
C:\App\Java\jdk1.8.0_112\bin\Java $(NAME_PART)
0
neolei

Je suis d'accord avec la réponse acceptée mais j'utilise parfois Textpad pour écrire/compiler/exécuter rapidement de petits programmes Java. Textpad a cette fonction intégrée (Outils/Outils externes) . Si vous ne voyez pas ces options, je pense que vous devez aller dans Configurer/Préférences/Outils et les ajouter. Ensuite, vous pouvez simplement appuyer sur Ctrl-1 pour compiler et Ctrl-2 pour exécuter. Ceci est utile pour de très petits tests rapides. , pas de bibliothèques ou quoi que ce soit.

0
Boris Lopez

Ma situation est similaire à la vôtre,

J'ai compilé et exécuté correctement l'application "hello world" dans cmd, mais dans notepad ++, je ne peux que compiler mais je ne peux pas exécuter le fichier de classe。

La raison en est que j'ai installé jdk1.7, définissez le CHEMIN sur jdk1.7, puis je jdk1.6 installé aussi . Le programme d'installation de jdk1.6 ajoute donc Java.exe à% systemroot%\System32 (SySWOW64 dans un environnement x64) mais pas javac.exe.

En modem cmd, système appelé javac.exe et Java.exe dans [[# #]] chemin [~ # ~], notepad ++ appelé javac.exe dans CHEMIN car il n'y a pas de javac dans system32 et Java.exe dans system32. (Vous pouvez exécuter "javac -version" et "Java -version" dans notepad ++ pour le savoir)

Donc j'ai supprimé Java.exe dans system32 puis npp compilé et exécuté parfaitement.

J'espère que cela peut aider n'importe qui.

0
lgt945

Vous pouvez essayer d'ajouter la variable d'environnement système pour le chemin bin jdk. lorsque j'ai exécuté Java sur notepad ++ pour la première fois, j'ai également rencontré un problème similaire.

0
user147