2010-11-30 19 views
23

He estado tratando de configurar Notepad ++ como un pequeño entorno Java, principalmente para aprender Java porque tenía algunas dificultades para conseguir que un programa simple funcionara con NetBeans, desafortunadamente todos los consejos sobre la configuración Notepad ++ para llamar al código de Java no funciona.Usando Notepad ++ para compilar el código Java

Supongo que Notepad ++ ha cambiado o que el kit de desarrollo de Java se ha modificado masivamente porque todos los ejemplos que he usado producen errores, aunque hay poco margen de error.

para empezar me encontré con este 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 resultado Sin embargo, esto ya no tiene ningún éxito. Java está configurado correctamente y puedo llamar al programa Java para que haga lo suyo a través de CMD.

El uso de un plugin llamado NPP y llamó a F6 y correr con el código (dado en los comentarios) tiene éxito en la compilación del programa Java en el archivo .class correcta, sin embargo, el comando falló en la ejecución del programa

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

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" 

que pensé creación de Notepad ++ para compilar y ejecutar el código sería fácil y divertido, pero su parece toda la documentación en Internet es obsoleta ya que nada funciona.

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

tan sólo pudiera utilizado CMD pero yo prefiero que sea más integrados en Notepad ++

Gracias por cualquier ayuda posible. aplausos :)

EDIT: Estoy usando la última versión de Java, Notepad ++ y tienen Windows 7

EDIT 2: el código:

//A Very Simple Example 
class ExampleProgram { 

    public static void main(String[] args){ 

     System.out.println("I'm a Simple Program"); 
    } 
} 
+1

La pregunta obvia es: ¿Por qué utilizar Notepad ++ cuando tener NetBeans instalado? – spender

+2

Intente utilizar un IDE, es decir, Eclipse, que está diseñado para escribir código. Te enseñará mucho más que el bloc de notas. – Sean

+1

Netbeans hará su vida mucho más fácil. Si tienes problemas con él, solo pregunta aquí – npinti

Respuesta

16

La 'curva de aprendizaje' asociada con IDEs como Eclipse o Netbeans inicialmente involucra principalmente lo que ya tiene arriba: conocimiento de la configuración de 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 una PC Grunty (tiene un poco de memoria hambrienta). Además de configurar los caminos, después de eso estarás listo para rockear.

Y Eclipse se desarrolla de manera activa y abierta y es uno de los IDE más documentados que hay. Los tutoriales están obligados a funcionar correctamente para ello :). Pero en serio, es bastante bueno. Y luego, cuando quiera expandirse al desarrollo de Android en Java, o algún otro tipo de programación de Java, simplemente cargue los complementos necesarios, y se estará riendo. También es compatible con la depuración, como el Notepad ++ ciertamente no puede competir.

+5

Voy a darle una oportunidad a Eclipse. :) – Joseph

+2

mientras estoy de acuerdo con Mark sobre la utilidad general de un IDE, pero seguramente siento que es bastante exagerado lanzar un IDE voluminoso, crear un proyecto, hacer algo tan simple como escribir una sola clase para verificar algo. – anirvan

+2

No estoy de acuerdo. Hago pruebas conceptuales simples todo el tiempo en Eclipse. De hecho, tengo un proyecto llamado Test, con una sola clase, llamada Test, con una sola función, main(), para hacer exactamente eso. Muy fácil. – aksarben

2

Probablemente el cambio de la última línea a:

java -cp . $(NAME_PART) 

funcionará para usted. El problema es que no estás configurando el classpath.

Notepad ++ estará bien para compilar un proyecto de archivo único. Para algo más que esto, necesitarás un IDE o al menos integrarlo con el ant en lugar del compilador de Java.

+0

Supongo que sería mejor volver a NetBeans, teniendo la sensación de que notepad ++ es bastante limitado para proyectos más grandes, hmmm – Joseph

+0

la edición no hizo diferencia, exactamente el mismo error, creo que la función en NPP, $ (NAME_PART) está roto – Joseph

+3

Joseph, mi amigable asesor como programador para el programador, nunca debe pensar que algo no funciona en el programa/api/idioma que está utilizando. En 99.999% de las situaciones, el problema está en lo que está haciendo con eso. – kgiannakakis

1

Establecer la ruta de clase en el comando java como esto:

java -classpath “$(CURRENT_DIRECTORY)” “$(NAME_PART)” 
1

Aunque estoy convencido de que hay que trabajar con un IDE (NetBeans, Eclipse, IntelliJ IDEA (que yo uso), creo que es siempre es bueno saber y conocer lo que está fallando en su pequeño ejemplo. con un IDE, la compilación y el entorno de ejecución se configuran, sino como un revelador, es importante entender los conceptos básicos ocultos. de todos modos,

Desde el enlace que ha publicado, aquí están las variables de entorno que debe 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 

asegurarse de que todos se nombran de acuerdo con estos valores, es decir:

- your source file is under C:\Documents and Settings\Administrator\My Documents\JavaP\ 
- your source file is named ExampleProgram.java 
+0

Su nombre de clase es 'ExampleProgram' por lo que el nombre del archivo debe ser' ExampleProgram.java', no 'NotHelloWorld.java'. ¿Simplemente copió y pegó los nombres de los archivos del enlace que brindó? –

+0

Copio y pego para el ejemplo. Si es mejor, hago la adaptación. está hecho :), thx –

0

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

0

Puede usar eclipse como se sugirió anteriormente, y solo crear un proyecto de 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 de archivo de enlace. De esta forma, 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á en el otro.

0

Recientemente me encontré 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" y sus complementos (incluido NppExec), según http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187(v=vs.85).aspx. También tenía instalado el último JDK 8.xx de 64 bits pero un JRE 7.xx anterior de 32 bits instalado.

Ahora el instalador de JRE 7.xx había colocado una copia (o hardlink, no he comprobado) de java.exe en su C: \ Windows \ system32 - que en realidad es C: \ Windows \ SysWOW64 \ java .exe. Esto no se encuentra en la RUTA de las aplicaciones de 64 bits, como cmd.exe, sino 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 observamos fue:

  • Desde el símbolo del sistema de Windows (cmd.exe, 64 bits) - ambos javac.exe y java.exe eran de la ubicación 8.xx JDK (C : \ Archivos de programa \ Java \ jdk1.8.0_05 \ bin).
  • Desde Notepad ++ (32 bits), se invocaba la versión JDK de javac.exe pero el java.exe se estaba ejecutando realmente desde C: \ Windows \ SysWOW64 \ java.exe, lo que generaba este tipo de carga problema.

La solución consistía en actualizar o eliminar el JRE de 32 bits.

0

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

0

Mi situación es similar a la suya,

me compilar y ejecutar el "hola mundo" aplicación en cmd correctamente, pero en Notepad ++, lo único que puedo hacer la compilación, pero no puede ejecutar el archivo de clase.

La razón es que instalé jdk1.7, establecí RUTA en jdk1.7, y luego I también jdk1.6 instalado. Entonces, el instalador jdk1.6 agrega java.exe a% systemroot% \ System32 (SySWOW64 en el entorno x64) pero no a javac.exe.

Mientras que en el módem cmd sistema llamado javac.exe y java.exe en PATH, Notepad ++ llamada javac.exe en PATH porque no hay javac en system32 y java.exe en system32. (se puede ejecutar "-version javac" y "java -version" en Notepad ++ para averiguar)

Así que java.exe borrado en system32 y luego compilado NPP y funcionar perfectamente.

Espero que esto ayude a cualquiera.

0

puede utilizar este pequeño código en el módulo de "funcionamiento" de Notepad ++:

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

nota: esta es la casi misma solución de código que se utiliza para ejecutar Python en Notepad ++ como se explica en este tema: How to Execute a Python File in Notepad ++?

0

He encontrado este link útil.

Sin embargo, el NppExec parece viene con su propio JRE, por lo que han cambiado las secuencias de comandos para esto (significa que es necesario la ubicación de Java de código duro):

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) 
Cuestiones relacionadas