Uso de Notepad++ para compilar código Java


He estado tratando de configurar Notepad++ como un pequeño entorno Java, principalmente para aprender Java ya que estaba teniendo algunas dificultades para conseguir un programa simple para trabajar con NetBeans, desafortunadamente todos los consejos sobre la configuración de Notepad++ para llamar al código Java no está funcionando.

Supongo que notepad++ ha cambiado o el Kit de desarrollo de Java se ha modificado masivamente porque todos los ejemplos que he utilizado resultan en errores, aunque hay poco espacio para el error.

Para empezar encontré esto sitio: http://blog.sanaulla.info/2008/07/25/using-notepad-to-compile-and-run-java-programs /

Este es el código para ejecutar Javac para compilar el código:

javac “$(FILE_NAME)”

Y

java “$(NAME_PART)”

Para ejecutar el código de bytes resultante, sin embargo, esto ya no tiene absolutamente ningún éxito. Java está correctamente configurado y puedo llamar al programa Java para hacer su cosa a través de CMD.

Usando un plugin llamado npp y llamado a través de F6 y ejecutar con este código (dado en los comentarios) tiene éxito en compilar el programa Java en el correcto .archivo de clase, sin embargo el comando falló al ejecutar el programa

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

Los errores de la consola en Notepad++ son:

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"

Pensé que configurar Notepad++ para compilar y ejecutar el código sería fácil y divertido, pero parece que toda la documentación en Internet está desactualizada ya que nada funciona.

Me gustaría una forma fácil de compilar y ejecutar código Java desde Notepad++

Solo podría usar CMD, pero preferiría que fuera más integrado en notepad++

Gracias por cualquier ayuda posible. saludos :)

EDITAR: Estoy usando la última versión de Java, notepad++ y tengo Windows 7

EDITAR 2: el código:

 //A Very Simple Example
 class ExampleProgram {

   public static void main(String[] args){

        System.out.println("I'm a Simple Program");
   }
 }
Author: Joseph, 2010-11-30

11 answers

La 'curva de aprendizaje' asociada con IDE como Eclipse o Netbeans inicialmente implica principalmente lo que ya tiene anteriormente: conocimiento de establecer rutas de clase, variables de entorno, etc. En lugar de Notepad++ (que me encanta, pero no está 'hecho' para Java), recomendaría Eclipse especialmente si tienes un PC grunty (tiene un poco de memoria). Además de configurar los caminos, después de eso estarás listo para rockear.

Y Eclipse siendo activa y abiertamente desarrollado es uno de los la mayoría de los IDEs documentados por ahí. Los tutoriales están obligados a funcionar correctamente para él :). Pero en serio, es bastante bueno. Y, a continuación, cuando se quiere ampliar al desarrollo de Android en Java, o algún otro tipo de programación de Java, acaba de cargar los complementos necesarios, y ya está riendo. También es compatible con la depuración, como Notepad++ ciertamente no puede competir.

 16
Author: Mark Mayo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-30 13:11:42

Probablemente cambiando la última línea a:

java -cp . $(NAME_PART)

Funcionará para ti. El problema es que no estás configurando el classpath.

Notepad++ estará bien para compilar un solo proyecto de archivo. Para algo más que esto necesitará un IDE o al menos integrarse con ant en lugar del compilador java.

 2
Author: kgiannakakis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-30 13:10:54

Establece el classpath en el comando java de la siguiente manera:

java -classpath “$(CURRENT_DIRECTORY)” “$(NAME_PART)”
 1
Author: dogbane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-30 13:13:08

Aunque estoy convencido de que tienes que trabajar con un IDE (NetBeans, Eclipse, IntelliJ IDEA (que uso), creo que siempre es bueno saber y aprender lo que está fallando en tu pequeño ejemplo. Con un IDE, se configuran el entorno de compilación y ejecución, pero como desarrollador, es importante entender los conceptos básicos ocultos. De todos modos,

Desde el enlace que has publicado, aquí están las variables environnement que debes definir

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

Asegúrese de que todo se nombra de acuerdo a estos ajustes, es decir:

- your source file is under C:\Documents and Settings\Administrator\My Documents\JavaP\
- your source file is named ExampleProgram.java
 1
Author: sly7_7,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-30 13:39:59

Estoy de acuerdo con la respuesta aceptada, pero a veces uso Textpad para escribir/compilar/ejecutar rápidamente pequeños programas java. Textpad tiene esto incorporado (Herramientas / Herramientas externas). Si no ves estas opciones creo que tienes que ir a Configurar / Preferencias / Herramientas y agregarlas. A continuación, puede pulsar Ctrl-1 para compilar y Ctrl-2 para ejecutar. Esto es útil para pruebas rápidas muy pequeñas, sin bibliotecas ni nada.

 0
Author: Boris Lopez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-02 17:07:42

Puede usar eclipse como se sugirió anteriormente, y simplemente crear un proyecto java. Después de crear el proyecto, simplemente arrastre y suelte el archivo java con el que desea trabajar en el proyecto y seleccione la opción vincular archivo. De esta manera eclipse creará una copia de su archivo y lo vinculará a su archivo, lo que significa que cada cambio que realice en un archivo se copiará al otro.

 0
Author: oscarMg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-22 20:38:01

Recientemente me he encontrado con esta situación en Windows 7 de 64 bits. Notepad++ es un programa de 32 bits, por lo que Windows ha habilitado la "Redirección del sistema de archivos" en él y sus complementos (incluido NppExec), según http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187 (v = vs.85). aspx. También tuve el último JDK 8 de 64 bits.xx instalado pero un JRE 7 de 32 bits anterior.xx instalado.

Ahora el JRE 7.xx instalador había colocado una copia (o hardlink, no he comprobado) de java.exe en su C:\Windows\system32 which que es en realidad C:\Windows\SysWOW64\java.exe. Esto no está en la RUTA de las aplicaciones de 64 bits como cmd.exe, pero está en la RUTA (redirigida) de las aplicaciones de 32 bits.

Luego, después de instalar JDK 8.xx, el instalador no actualizó mi RUTA, así que agregué la ubicación de instalación de JDK al final de mi RUTA. A partir de ese momento, el comportamiento que observé fue:

  • Desde el símbolo del sistema de Windows (cmd.exe, 64-bit) both ambos javac.exe y java.exe eran del JDK 8.xx ubicación (C:\Program Files\Java\jdk1.8.0_05\bin).
  • Desde Notepad++ (32-bit), la versión JDK de javac.exe estaba siendo invocado pero el java.exe en realidad estaba siendo huida de C:\Windows\SysWOW64\java.exe leading que conduce a este tipo de problema de carga.

La solución era actualizar o eliminar el JRE de 32 bits.

 0
Author: Tanz87,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-28 03:37:50

Puede intentar agregar la variable de entorno del sistema para la ruta bin jdk. cuando ejecuté java en notepad++ por primera vez, también me encontré con un problema similar.

 0
Author: user147,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-30 14:29:42

Mi situación es similar a la tuya,

Compilé y ejecuté la aplicación "hello world" en cmd correctamente, pero en notepad++, solo puedo compilar pero no puedo ejecutar el archivo de clase。

La razón es que instalé jdk1.7, establecí la RUTA a jdk1.7, y luego instalé jdk1.6 también. Así que el instalador jdk1. 6 añadir java.exe a %systemroot% \ System32 (SysWOW64 en entorno x64) pero no javac.exe.

Mientras estaba en el módem cmd, el sistema llamó javac.exe y java.exe en PATH , notepad++ llamó a javac.exe en PATH porque no hay javac en system32 y java.exe en system32. (Puede ejecutar "javac-version" y "java-version" en notepad++ para averiguarlo)

Así que borré java.exe en system32 y luego npp compilado y ejecutado perfectamente.

Espero que esto pueda ayudar a alguien.

 0
Author: lgt945,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-20 17:39:58

Puedes usar este pequeño código en el módulo " run " de notepad++:

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

Nota: esta es casi la misma solución de código que usaron para ejecutar python en notepad++ como se explica en este tema: ¿Cómo ejecutar un archivo Python en Notepad ++?

 0
Author: RooGi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:18:09

Encontré este enlace útil.

Sin embargo, el NppExec parece que viene con su propio JRE, por lo que he cambiado los scripts a esto (significa que necesita codificar la ubicación de 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
Author: neolei,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-09 03:17:39